繁体   English   中英

Kotlin:初始化并获取变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM