kotlin标准委托之可观察属性

所谓可观察属性就是当属性变化时可以拦截其变化,实现观察属性值变化的委托函数是Delegates.observable.该函数接受二个参数,第一个是初始化值,第2个属性值变化事件的响应器.每次我们向属性赋值时,响应器都会被调用,响应器函数的三个函数,被赋值的属性,赋值前旧属性值,以及赋值后的新属性值

import kotlin.properties.Delegates

fun main(arg: Array<String>) {
    val user = user()
    user.name="two"
    user.name="new"
}

class user{
    var name:String by Delegates.observable("one"){
        property, oldValue, newValue ->
        println("旧值 $oldValue 新值 $newValue")
    }
}

输出:

旧值 one 新值 two
旧值 two 新值 new
原文地址:https://www.cnblogs.com/loaderman/p/10143221.html