如何解决如何在Kotlin中的多个属性初始化中使用计算?
我想做一次可能成本很高的计算,以使用其结果初始化两个类属性,理想情况下应为val
s。有正确的方法吗?
例如:
class Foo(aIn: Double,bIn: Double) {
val a = aIn * bigCalc(aIn,bIn)
val b = bIn * bigCalc(aIn,bIn)
}
我无法在init块中执行此操作,因为无法在此之外访问结果,我宁愿不要使a和b var
保持不变,我宁愿不要将其保留为in这个例子很慢,没有充分的理由。
解决方法
您实际上可以使用dist
init
但是,这与您拥有的代码相同。创建类时,两者都会初始化变量。因此,使用class Foo(aIn: Double,bIn: Double) {
val a: Double
val b: Double
init {
a = aIn * bigCalc(aIn,bIn)
b = bIn * bigCalc(aIn,bIn)
}
}
不会提高性能。选中此similar SO answer。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。