Kotlin 拓展函数
小于 1 分钟
Kotlin 拓展函数
fun <R> run(block: () -> R): R = block()
fun <T, R> T.run(block: T.() -> R): R = block()
fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()
fun <T> T.apply(block: T.() -> Unit): T {block(); return this}
fun <T> T.also(block: (T) -> Unit): T {block(this); return this}
fun <T, R> T.let(block: (T) -> R): R = block(this)
传入 | 返回 | 作用 | |
---|---|---|---|
run | lambda作为成员方法 | lambda结果 | 直接引用对象成员,得到另外结果 |
apply | lambda作为成员方法 | 对象本身 | 直接引用对象成员,修改对象 |
also | 接收对象的lambda | 对象本身 | 用it引用对象,做额外处理 |
let | 接收对象的lambda | lambda结果 | 用it引用对象,得到另外结果 |
用.also{println(it)}可以很方便地在行内插入输出信息