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