kotlin 学习记录
Posted abin-c
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin 学习记录相关的知识,希望对你有一定的参考价值。
关于kotlin中的委托:
1.属性委托
我们知道kotlin为我们提供了几种标准的委托,如下所示
延迟属性(lazy properties): 其值只在?次访问时计算;
可观察属性(observable properties): 监听器会收到有关此属性变更的通知;
把多个属性储存在?个映射(map)中,?不是每个存在单独的字段中。
kotlin中的委托属性
class Example { var p: String by Delegate() }
语法是: val/var <属性名>: <类型> by <表达式>。在 by 后?的表达式是该 委托, 因为属性对应的 get()(和 set() )会被委托给它的
getValue() 和 setValue() ?法。 属性的委托不必实现任何的接?,但是需要提供?个 getValue() 函数(和 setValue() ?对于 var 属
性)。 例如:
class Delegate { operator fun getValue(thisRef: Any?, property: KProperty<*>): String { return "$thisRef, thank you for delegating ‘${property.name}‘ to me!" } operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { println("$value has been assigned to ‘${property.name}‘ in $thisRef.") } }
以上是关于kotlin 学习记录的主要内容,如果未能解决你的问题,请参考以下文章