Sergei Buvaka Asked:2020-06-11 19:04:29 +0800 CST2020-06-11 19:04:29 +0800 CST 2020-06-11 19:04:29 +0800 CST Kotlin:apply{} 和 with() 之间的区别 772 有人可以向我解释这两个功能有什么区别吗?在什么情况下应用这个或那个功能更好? kotlin 1 个回答 Voted Best Answer user376603 2020-06-11T20:24:58+08:002020-06-11T20:24:58+08:00 这些方法有两个区别: apply{}将类的实例作为接收者 ( instance.apply{}),而 with() 要求实例在参数 ( with(instance){}) 中传递。在这两种情况下,instance它都会this进入块内。 apply{} 返回接收者,同时with()返回块中最后一个表达式的结果。 我认为使用这些方法没有任何严格的规则。通常apply{}在你需要对一个对象做某事并返回它时使用。当你需要对一个对象执行一些操作并返回不同的结果时,你可以使用with()
这些方法有两个区别:
apply{}
将类的实例作为接收者 (instance.apply{}
),而 with() 要求实例在参数 (with(instance){}
) 中传递。在这两种情况下,instance
它都会this
进入块内。apply{}
返回接收者,同时with()
返回块中最后一个表达式的结果。我认为使用这些方法没有任何严格的规则。通常
apply{}
在你需要对一个对象做某事并返回它时使用。当你需要对一个对象执行一些操作并返回不同的结果时,你可以使用with()