Kotlin学习笔记-函数学习记录 with apply run区别

with函数:

with函数会在Lambda表达式中提供第一个参数对象的上下文,并使用Lambda表达式中的最后一行代码作为返回值返回。

val result = with(obj) {

// 这里是obj的上下文

"value" // with 函数的返回值
}

run函数:

with 函数是非常类似的,只是稍微做了一些语法改动而已。首先 run函数要在某个对象的基础上调用; run 函数只接收一个 Lambda 参数,并且会在 Lambda 表达式中提供调用对象的上下文。其他方面和with 函数是一样的,包括也会使用 Lambda 表达式中的最后一行代码作为返回值返回。
val result = obj.run {
// 这里是 obj 的上下文
"value" // run 函数的返回值
}

apply函数:

apply 函数和 run 函数也是极其类似的,都要在某个对象上调用,并且只接收一个Lambda 参数,也会在 Lambda 表达式中提供调用对象的上下文,但是apply 函数无法指定返回值,而是会自动返回调用对象本身。
val result = obj.apply {
// 这里是 obj 的上下文
}
// result == obj
摘自《第一行代码第3版》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值