Kotlin 中何时生成支持字段?

Nit*_*gla 2 kotlin

引用 Kotlin文档中关于“支持属性”的内容。

如果属性使用至少一个访问器的默认实现,或者自定义访问器通过标识符引用它,则将为属性生成支持字段field

例如,在以下情况下将没有支持字段:

val isEmpty: Boolean
   get() = this.size == 0
Run Code Online (Sandbox Code Playgroud)

至少有一个访问器(setter)正在使用默认实现,那么为什么在上述情况下没有支持字段呢?

Jof*_*rey 5

至少有一个访问器(setter)正在使用默认实现

示例属性是 a val,因此没有设置器。唯一的访问器是 getter,并且该访问器不使用默认实现,因此没有支持字段。

我同意如果他们从一个例子开始的话会更清楚var,但是这个例子绝对值得注意,可以阐明它如何适用于vals。