【发布时间】:2021-11-03 22:22:49
【问题描述】:
假设我有一个 Kotlin 类 Dog 有两个属性 weight 和 weightInKgs
class Dog(val weight: Double) {
// property without initializing works. Why?
val weightinKgs: Double
get() = weight/ 2.2;
}
上面的代码运行没有错误。我知道 Kotlin 中的每个属性都必须初始化,那么为什么在不初始化属性的情况下定义 getter 呢?其次,当val 更改为var 为weightInKgs 时,会产生一个要求初始化的错误。将其更改为var 会如何破坏代码?
class Dog(val weight: Double) {
// well its doesn't work now.
var weightinKgs: Double
get() = weight/ 2.2;
}
【问题讨论】: