- import kotlin.reflect.KProperty
-
- fun main() {
- var user: String by MyDelegate()
- user = "fly"
- println(user)
- }
-
- class MyDelegate {
- private var v: String? = null
-
- operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
- return "property='${property.name}' getValue ${v}"
- }
-
- operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
- v = value
- println("property='${property.name}' setValue -> $value")
- }
- }
property='user' setValue -> fly
property='user' getValue fly
- import kotlin.properties.*
-
- fun main() {
- var len: Int by Delegates.observable(0) { prop, oldValue, newValue ->
- println("$oldValue -> $newValue")
- }
-
- len = 2023
- len = 2024
- }
0 -> 2023
2023 -> 2024