Kotlin中nullabe和non-nullable类型有什么区别

时间:2019-02-04 06:52:12

标签: kotlin

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

2 个答案:

答案 0 :(得分:1)

可空类型可以包含。当type为可为空时,问号将在其类型后设置:

val str: String? = null

非空类型不能容纳

val str: String = "some value"

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

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

Here you can read more about Null Safety.

答案 1 :(得分:0)

当变量具有可为null的类型时,该变量可以具有值或也可以具有null值,并且该程序将不会像大多数具有 nullpointer exeption 错误消息的基于Java的程序一样强制关闭。 / p>

例如:

val data: DataResponse? = null

保存更多,然后使用 val数据:字符串,因为当您使用 data 变量时,变量不具有值或为null时,程序此时不会强制关闭。 您可以像这样使用数据变量:

your_text.text = data 

,您的代码不会强制关闭。

但是如果您的代码是这样,则表示 nonNullable

val data: DataResponse

您的应用将在您使用variabel时强制关闭