Kotlin 中可空类型和不可空类型有什么区别
What is the difference between nullabe and non-nullable type in Kotlin
请解释可空类型和不可空类型的区别。我是科特林的新手,我很困惑。
谢谢
Nullable 类型可以容纳 nulls。当类型可为 null 时,在其类型后设置问号:
val str: String? = null
不可为空的 类型不能容纳 nulls:
val str: String = "some value"
如果我们尝试将 null 值设置为 Non-nullable 类型,IDE 将给出错误并且代码将未被编译:
val str: String = null // error, the code won't compile
当一个变量具有可空类型时,该变量可以有值或者它也可以有值 null 并且程序不会像大多数基于 java 的程序一样强制关闭 空指针异常 条错误消息。
例如:
val data: DataResponse? = null
它比你使用 val data: String 节省更多,因为当你使用它时你的 data variabel 没有值或 null程序当时没有强行关闭。
您可以像这样使用 data 变量:
your_text.text = data
并且您的代码不会强制关闭。
但如果您的代码是这样的,则表示 nonNullable。
val data: DataResponse
您的应用程序将在您使用变量时强制关闭
请解释可空类型和不可空类型的区别。我是科特林的新手,我很困惑。
谢谢
Nullable 类型可以容纳 nulls。当类型可为 null 时,在其类型后设置问号:
val str: String? = null
不可为空的 类型不能容纳 nulls:
val str: String = "some value"
如果我们尝试将 null 值设置为 Non-nullable 类型,IDE 将给出错误并且代码将未被编译:
val str: String = null // error, the code won't compile
当一个变量具有可空类型时,该变量可以有值或者它也可以有值 null 并且程序不会像大多数基于 java 的程序一样强制关闭 空指针异常 条错误消息。
例如:
val data: DataResponse? = null
它比你使用 val data: String 节省更多,因为当你使用它时你的 data variabel 没有值或 null程序当时没有强行关闭。 您可以像这样使用 data 变量:
your_text.text = data
并且您的代码不会强制关闭。
但如果您的代码是这样的,则表示 nonNullable。
val data: DataResponse
您的应用程序将在您使用变量时强制关闭