Kotlin中nullabe和非nullable类型之间有什么区别

Kotlin中nullabe和非nullable类型之间有什么区别,kotlin,Kotlin,请解释可空类型和不可空类型之间的区别。我是科特林的新手,我很困惑。谢谢可空类型可以保存空值。如果类型可为空,则在其类型之后设置问号: val str: String? = null 不可为null的类型不能保留null: 如果我们试图将null值设置为不可为null的类型,IDE将给出一个错误,代码将不会被编译: val str: String = null // error, the code won't compile 当一个变量具有可空类型时,该变量可以有值,也可以有值null,并且该

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

可空类型可以保存空值。如果类型可为空,则在其类型之后设置问号:

val str: String? = null
不可为null的类型不能保留null:

如果我们试图将null值设置为不可为null的类型,IDE将给出一个错误,代码将不会被编译:

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

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

例如:

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

your_text.text = data 
您的代码不会强制关闭

但是如果你的代码是这样的,它意味着不可为空

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

your_text.text = data 
val data: DataResponse