// Created on savesnippets.com · https://savesnippets.com/ElJ3Hpt31nu3St import kotlin.reflect.KProperty // Custom delegate that logs every read + write class LoggingProperty(private var value: T) { operator fun getValue(thisRef: Any?, property: KProperty<*>): T { println("[GET ${property.name}] → $value") return value } operator fun setValue(thisRef: Any?, property: KProperty<*>, new: T) { println("[SET ${property.name}] $value → $new") value = new } } class User { var name: String by LoggingProperty("anonymous") var age: Int by LoggingProperty(0) } fun main() { val u = User() u.name = "Alice" // [SET name] anonymous → Alice println(u.age) // [GET age] → 0 }