我正在学习 Kotlin,读到这个lateinit
关键字让我怀疑它的用处。考虑这段代码:
var testString: String? = null
lateinit var lateTestString: String
fun print() {
print(testString?.length)
print(lateTestString.length)
}
这里获取字符串长度的唯一区别是使用?.
运算符检查它是否为空。在访问属性或调用方法时是否使用了lateinit
不必添加额外问号的快捷方式?就这一事实而言,我认为添加额外的问号比访问异常时更值得lateinit
。
更多的研究表明,这lateinit
对于变量尚未初始化的注入和/或单元测试很有用,但它会。但是,难道不值得拥有额外的东西?.
而不是.
不冒例外的风险吗?