Kotlin知识拾遗之--->Kotlin 变量中的getter和setter

459 阅读1分钟
1、自定义变量的读取流程

我们首先看一下Kotlin中定义变量的完整语法:

var <propertyName>[:PropertyType][= <property_initializer>]
    [<getter>]
    [<setter>]

类型、初始值、getter和setter都是可选的。

// 自定义getter by xj on 7/25/21 11:50 AM
val isGood
get() = 100 > 90

// 自定义setter by xj on 7/25/21 11:50 AM
var score = 3
set(value) {
    // 幕后字段filed只能用于自定义的setter或者getter中 by xiaojin on 7/25/21 11:52 AM
    field = value.div(10)
}

定义了自定义的getter,那么每次访问属性时都会调用它。 定义了自定义的setter,那么每次为属性赋值时都会访问它。 按照惯例,setter的参数名称是value。

2、幕后字段

当一个属性需要幕后字段时,Kotlin会自动提供,这个幕后字段可以使用filed标识符进行访问。 他只能用在属性的访问器内。