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真正含义,目前暂时没理解到和定义属性的区别。

results matching ""

    No results matching ""