lig*_*igi 0 android kotlin kotlin-lateinit
我想使用这个功能
在示例中最简单的事情对我不起作用:
lateinit val foo = 1
val bar = foo::lateinitVar.isInitialized()
Run Code Online (Sandbox Code Playgroud)
但我得到了
unresolved reference lateinitVar
Run Code Online (Sandbox Code Playgroud)
我在Android-Studio(也安装了Kotlin 1.2.10插件)中通过gradle使用Kotlin 1.2.10
s1m*_*nw1 15
lateinitVar代码中没有名称变量,因此错误.再看一下这个例子:
this::lateinitVar.isInitialized
Run Code Online (Sandbox Code Playgroud)
lateinitVar定义了一个变量this,调用该函数.示例中的代码段可以展开(列表开头的小加号),如下所示:
class Foo {
lateinit var lateinitVar: String
fun initializationLogic() {
println("isInitialized before assignment: " + this::lateinitVar.isInitialized)
lateinitVar = "value"
println("isInitialized after assignment: " + this::lateinitVar.isInitialized)
}
}
Run Code Online (Sandbox Code Playgroud)
这可能会更清楚.
另外,请注意lateinit不能应用val但仅适用var.
| 归档时间: |
|
| 查看次数: |
3234 次 |
| 最近记录: |