observable
inline fun <T> observable(
initialValue: T,
crossinline onChange: (property: KProperty<*>, oldValue: T, newValue: T) -> Unit
): ReadWriteProperty<Any?, T>
Returns a property delegate for a read/write property that calls a specified callback function when changed.
import kotlin.properties.Delegates
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
var observed = false
var max: Int by Delegates.observable(0) { property, oldValue, newValue ->
observed = true
}
println(max) // 0
println("observed is ${observed}") // false
max = 10
println(max) // 10
println("observed is ${observed}") // true
//sampleEnd
}
Parameters
initialValue
- the initial value of the property.
onChange
- the callback which is called after the change of the property is made. The value of the property
has already been changed when this callback is invoked.