繁体   English   中英

Kotlin 中可空类型和不可空类型有什么区别

[英]What is the difference between nullabe and non-nullable type in Kotlin

请解释可为空类型和不可为空类型之间的区别。 我是 kotlin 的新手,我很困惑。
谢谢

可空类型可以保存空值 当 type 可以为 null 时,在它的 type 之后设置问号:

val str: String? = null

不可为空的类型不能持有空值

val str: String = "some value"

如果我们尝试将null值设置为Non-nullable类型,IDE 将给出错误并且不会编译代码:

val str: String = null // error, the code won't compile

在这里您可以阅读更多关于Null Safety 的信息

当变量具有可空类型时,该变量可以具有值,也可以具有 null 值,并且程序不会像大多数带有空指针异常错误消息的基于 Java 的程序那样强制关闭。

例如 :

val data: DataResponse? = null

它比你使用val data: String更节省,因为当你的数据变量没有 value 或 null 当你使用它时,你的程序不会强制关闭。 您可以像这样使用您的数据变量:

your_text.text = data 

并且您的代码不会强制关闭。

但是如果你的代码是这样的,那就意味着nonNullable

val data: DataResponse

当您使用变量时,您的应用程序将强制关闭

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM