如何在Kotlin中用“by keyword”初始化lateinit变量

czfnxgou  于 2023-02-13  发布在  Kotlin
关注(0)|答案(1)|浏览(144)

我想用"by"初始化lateinit变量。
我怎么能?

lateinit var test: int

fun main() {
    test by something {} // error!
}

我试着在by lazy中使用by,也试着在lateinit var中使用by,但都不起作用。

flvlnr44

flvlnr441#

使用by lazy时不需要lateinit。Lazy意味着它将在第一次被引用时被初始化。lateinit意味着在构造后的某个时间手动赋值。
所以你所需要的就是

val test by lazy { something() }

fun main() {
    println(test) // runs the initializer and prints the value
}

相关问题