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

问题描述 投票:4回答:2

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

null nullpointerexception
2个回答
3
投票

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

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


0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.