总结let、with、run、apply、also之间的区别

544 阅读1分钟

本章节主要目的:通过表格显示let、with、run、appply、also区别

主要从两个维度来区分:函数内使用对象返回值

函数名inline结构函数内使用对象返回值
letfun <T, R> T.let(block: (T) -> R): R { block(this) }itreturn或者最后一行
withfun <T, R> with(receiver: T, block: T.() -> R): R { receiver.block() }T类型对象receiverreturn 或者最后一行
runfun <T, R> T.run(block: T.() -> R): R { block() }thisreturn 或者最后一行
applyfun T.apply(block: T.() -> Unit): T {block();return this}this对象本身 或者最后一行
alsofun T.also(block: (T) -> Unit): T { block(this); return this }it对象本身 或者最后一行

如果想了解详细的使用场景,推荐文章:blog.csdn.net/u013064109/…