apply vs with
Kotlin中有很多优秀的特性,我们可以利用这些特性在Kotlin中编写更好的应用程序。在所有这些特性中,apply和with是重要的特性。我们必须知道什么时候用哪一个。
何时使用“apply”,何时使用“with”?
根据定义,apply接受一个函数,并将其作用域设置为调用apply的对象的作用域。这意味着不需要显式引用对象。Apply()当然不仅仅是简单地设置属性。它是一个转换函数,能够在返回之前评估复杂的逻辑。最后,函数只返回相同的对象(添加了更改),因此可以在同一行代码中继续使用它。
让我们看看“apply”和“with”之间的区别。
主要有两个区别:
- apply接受一个实例作为接收器,而with要求将一个实例作为参数传递。在这两种情况下,实例都将成为一个块内的实例。
- apply返回接收器,with返回其块中最后一个表达式的结果。
通常在需要对对象执行操作并返回时使用apply。当需要对某个对象执行某些操作并返回可用于的其他对象时。
Example of apply
1 | fun getDeveloper(): Developer { |
Example of with
1 | fun getPersonFromDeveloper(developer: Developer): Person { |