Kotlin中的委托属性有哪些
导读:在Kotlin中,委托属性有以下几种: lazy属性:延迟初始化属性,只有在首次访问时才会进行初始化。 val lazyValue: String by lazy { println("computed" "Hello...
在Kotlin中,委托属性有以下几种:
lazy
属性:延迟初始化属性,只有在首次访问时才会进行初始化。
val lazyValue: String by lazy {
println("computed")
"Hello"
}
observable
属性:属性变化监听器,当属性被赋新值时,会调用监听器。
var name: String by Delegates.observable("initial value") {
prop, old, new ->
println("$old ->
$new")
}
vetoable
属性:属性变化拦截器,当属性被赋新值时,可以根据条件决定是否接受新值。
var age: Int by Delegates.vetoable(0) {
prop, old, new ->
new >
= 0
}
map
属性:通过Map委托实现属性存储。
val userMap = mutableMapOf("name" to "Alice", "age" to 30)
val name: String by userMap
val age: Int by userMap
除了以上几种常见的委托属性,Kotlin还支持自定义委托属性,开发者可以根据自己的需求实现自定义的委托属性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Kotlin中的委托属性有哪些
本文地址: https://pptw.com/jishu/672874.html