目前我开始学习Kotlin。我有一个这样的财产:
var startTime: Int
get() = {
// read value from database
}
set(value) {
// save value to database
}
Run Code Online (Sandbox Code Playgroud)
在这里,每次使用 getter 和 setter 时,我总是读取和写入该值。
这个属性可以被惰性评估吗?我想在第一次使用 getter 时读取该值并将其缓存以供后续调用。我知道值可能是惰性的,但我没有发现任何关于变量的信息。Kotlin 中缓存此属性的正确方法是什么?
Kotlin 提供了惰性属性 ( https://kotlinlang.org/docs/reference/deleated-properties.html#lazy ),这些属性在首次访问时计算并缓存。
\n\nval lazyValue: String by lazy {\n println("computed!")\n "Hello"\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\x8b
\n\nfun main(args: Array<String>) {\n println(lazyValue)\n println(lazyValue)\n}\nRun Code Online (Sandbox Code Playgroud)\n\n会产生
\n\ncomputed!\nHello\nHello\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2026 次 |
| 最近记录: |