哪些编程语言会阻止空指针异常?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪些编程语言会阻止空指针异常?相关的知识,希望对你有一定的参考价值。

我知道你不能在Haskell中获得空指针异常,但我很好奇其他语言有什么这个功能。例如,一位同事询问是否有任何解释性语言不允许空值,我不知道答案。我所知道的唯一一种避免这种billion dollar mistake的语言是Haskell。

答案

在Objective-C中,您可以将消息传递给实际为nil的对象,并且它们自己静默地返回nil

但是,当您执行类似C的指针解除引用时(即使用*.运算符时),您仍然可能面临空指针异常的风险。

另一答案

Kotlin是一种静态类型的编程语言,可以在Java虚拟机上运行,​​也可以编译为javascript源代码或使用LLVM编译器基础结构。

Kotlin通过区分可空和非可空类型来避免空指针异常。所有可空变量必须用“?”声明postfix后的类型名称。可开发变量的操作需要开发人员特别小心:必须在使用该值之前执行null-check。

要在可变类型的变量上调用方法,您必须使用“?”运算符,如果变量不为null(并使其返回类型为可空),则仅调用该方法,或者“!!” operator,断言变量当前不为null。

请注意,如果使用“!!”,仍然可以在Kotlin上获取空指针异常null对象上的操作符或与Java交互时的操作符。

以上是关于哪些编程语言会阻止空指针异常?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建 MapView 并添加标记导致片段中出现空指针异常

片段中的空指针异常

片段 getArguments() 空指针异常

片段中的 Listview 适配器给出空指针异常

访问片段的子视图时出现空指针异常

空指针异常 - 片段活动