请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

let apply also run的函数功能是什么

老师,问一下这几个函数的功能是什么?
比如println,我知道它参数是string返回是unit,但是这没啥用,我得知道println的功能是打印日志才知道怎么样呀。
同理,let apply also run这几个的功能我都不知道是干啥的,到底有什么用呢?

正在回答

1回答

举个例子,看看能不能理解。

return StringBuilder().apply {
  append(...)
  append(...)
}.also {
  println(it)
}

这几个函数都是没有逻辑的纯函数,他们的功能就是执行他们的参数,也就是传入的 lambda。你可以在你需要某一个对象的作用域的时候使用apply或者run,用哪个取决于你希望得到的结果是这个对象本身还是lambda表达式的结果。let和also类似。如果还是不能理解,那就先放一放,课程后面的例子当中应该会用到他们。

这跟你说的println有很大的不同,println的功能就是它的副作用,即在控制台输出参数,而let also这几个函数内部没有任何额外的逻辑,没有任何副作用。同学也可以自行查看源码来了解他们的内部实现。
1 回复 有任何疑惑可以回复我~
  • 提问者 hjh2015 #1
    就类似于运行一段代码,只是使用了链式调用这种形式,了解了,谢谢老师
    回复 有任何疑惑可以回复我~ 2023-01-25 16:00:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信