属性的委托
package myfirst
import kotlin.reflect.KProperty
class A {
var i:Int=1
var j:Int by this.i//通过旧值改变新值,执行顺序get,by,set
}
private operator fun Int.setValue(a: A, property: KProperty<*>, i: Int) {}
private operator fun Int.getValue(a: A, property: KProperty<*>): Int {
return a.i
}
fun main(args: Array<String>) {
var a=A()
a.i=10
println(a.j)//输出:10
}
浙公网安备 33010602011771号