[英]Kotlin: Initialisation and get for a variable
有什么区别:
1.
var abc = someObject.getSomeValueWhichChangesFrequently()
vs
2.
var abc = someObject.getSomeValueWhichChangesFrequently()
get = someObject.getSomeValueWhichChangesFrequently()
someObject.getSomeValueWhichChangesFrequently() 经常更改。 将使用第一种方式,仅在 init 处设置值,然后始终从 abc 返回该值,无论 someObject.getSomeValueWhichChangesFrequently() 稍后返回什么值,或者 abc 始终返回 someObject.getSomeValueWhichChangesFrequently() 的最新值。
我不想 #2 因为我必须在 abc 的 init 和 get() 中调用 someObject.getSomeValueWhichChangesFrequently()
请指教。 谢谢
我不想 #2 因为我必须在 abc 的 init 和 get() 中调用 someObject.getSomeValueWhichChangesFrequently()
你应该写的是
val abc
get() = someObject.getSomeValueWhichChangesFrequently()
或者
var abc
get() = someObject.getSomeValueWhichChangesFrequently()
set(value) = someObject.setSomeValueWhichChangesFrequently(value)
#2 中初始化程序中的调用实际上是无用的,因为它初始化了支持字段,但 getter 从不访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.