-6

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

4

2 回答 2

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

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

于 2019-02-04T07:57:23.173 回答
0

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

例如 :

val data: DataResponse? = null

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

your_text.text = data 

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

但是如果您的代码是这样的,则意味着nonNullable

val data: DataResponse

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

于 2019-02-04T08:34:57.580 回答