observable

Common
JVM
JS
Native
1.0
inline fun < T > observable (
initialValue : T ,
crossinline onChange : ( property : KProperty < * > , oldValue : T , newValue : T ) -> Unit
) : ReadWriteProperty < Any ? , T >

(source)

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.