kotlin 委托

来源:互联网 发布:淘宝货到付款的衣服 编辑:程序博客网 时间:2024/06/07 20:07

(转载)http://www.runoob.com/kotlin/kotlin-delegated.html

标准委托

Kotlin 的标准库中已经内置了很多工厂方法来实现属性的委托。

延迟属性 Lazy

lazy() 是一个函数, 接受一个 Lambda 表达式作为参数, 返回一个 Lazy <T> 实例的函数,返回的实例可以作为实现延迟属性的委托: 第一次调用 get() 会执行已传递给 lazy() 的 lamda 表达式并记录结果, 后续调用 get() 只是返回记录的结果。

val lazyValue: String by lazy {    println("computed!")     // 第一次调用输出,第二次调用不执行    "Hello"}fun main(args: Array<String>) {    println(lazyValue)   // 第一次执行,执行两次输出表达式    println(lazyValue)   // 第二次执行,只输出返回值}

执行输出结果:

computed!HelloHello