在类中定义可选属性时,Kotlin要求将其显式初始化为null,如下所示:
var myString: String? = null
Run Code Online (Sandbox Code Playgroud)
有没有理由说编译器无法推断出这个初始值?我相信Swift会让你跳过这= null部分,但这是Kotlin中的编译器错误.在编写以下内容后自动将值null设置为null会不会更简单?
var myString: String?
Run Code Online (Sandbox Code Playgroud)
明确性是Kotlin整体语言设计的一部分.Kotlin语言中没有任何类型的隐式默认值.还希望阻止(误)使用空值,因此就初始化而言,空值不以任何方式被认为是特殊的.如果你有一个不可为空的字符串var myString: String,你需要用一些东西来初始化它,就像你需要var myString: String?用某些东西初始化一个可空字符串一样,这样它的初始值总是显式的.
请注意,从技术上讲,String?Kotlin中的Kotlin不是可选字符串.在Kotlin中,它被称为可以为空的字符串.但是,最常见的空值用例是表示"缺乏价值".
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |