gpt4 book ai didi

Kotlin 惰性属性取决于在 init 中初始化的另一个属性

转载 作者:行者123 更新时间:2023-12-02 12:06:50 25 4
gpt4 key购买 nike

我在 Kotlin 中有以下类(class):

class Example {
val name: String

val lazyVar: String by lazy {
name + " something else"
}

init {
name = "StackOverflow"
}
}

使用 name 时出现以下错误在 lazyVar 的惰性初始化块中(即使 nameinit 块中初始化):

Variable 'name' must be initialized



一种解决方案是在另一种方法中初始化变量:
class Example {
val name: String

val lazyVar: String by lazy {
initLazyVar()
}

init {
name = "StackOverflow"
}

private fun initLazyVar(): String {
return name + " something else"
}
}

这种技术有效,但有没有办法保持内联惰性块的兼容性而不是依赖外部函数?

最佳答案

尝试

class Example {
val name: String

init {
name = "StackOverflow"
}

val lazyVar: String by lazy {
name + " something else"
}
}

关于Kotlin 惰性属性取决于在 init 中初始化的另一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45503689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com