Backing Fields
Kotlin中不能有字段。但是可以使用自定义的访问器创建一个Backing Field。为了达到这个目的,Kotlin提供了自动化的Backing Field,可以通过field标识符访问。
var counter = 0 初始化的值直接被写到backing field
set(value) {
if (value >= 0) field = value
}
field标识符只能在访问属性时使用。
使用至少一个默认的属性访问器实现或者自定义访问器时使用了field标识符将会产生一个backing field。
比如:下面的例子不会产生backing field。
val isEmpty: Boolean
get() = this.size == 0
TODO:backing field真正含义,目前暂时没理解到和定义属性的区别。