Backing Properties
如果你想做一些不符合“隐式backing field”的事情,你可以回过头来使用backing property。
private var _table: Map<String, Int>? = null
public val table: Map<String, Int>
get() {
if (_table == null) {
_table = HashMap()
}
return _table ?: throw AssertionError("Set to null by another thread")
}
从各方面来说,这只是和Java访问私有属性一样,只是对默认getter和setter方法进行了优化从而没有引入多余的函数调用开销。