与之相对,with更适合于对一个对象进行多个操作,不需要关心返回值,或者需要返回不同的类型。例如,如果要计算一个对象基于当前状态的一个结果,那么可以使用 “with”。 综上所述,理解apply和with的正确用法和差异性,可以帮助开发者写出更清晰、高效的Kotlin代码。
apply vs with Kotlin 中有许多很棒的功能,我们可以利用所有这些功能在 Kotlin 中编写更好的应用程序。在所有这些特性中,apply和with是重要的特性。我们必须知道什么时候使用哪一个。 什么时候用“apply”,什么时候用“with”? 根据定义,apply 接受一个函数,并将其范围设置为调用 apply 的对象的范围。这意味着不需...
apply和with的不同 ① apply接收一个实例作为接收者,同时要求一个实例作为参数传递。 ② apply返回接收者,with返回其块内最后一个表达式的结果。 通常情况下,当你需要对一个对象某些事情并返回时,可以使用apply。而当你需要在一个对象上执行一些操作并返回一些可以使用的其他对象时,你可以使用with。 apply示例代码: ...
使用apply就把上面的with换成apply。简单明了就是你少些了很多binding. 基本很多人都知道上面的事情,那么二者什么区别呢? with返回值是最后一行。 apply返回值是调用它的对象 本身。 实践 with var list: MutableList<Int>? = mutableListOf(2, 3) val withReturnValue = with(list) { this?.add(50) 50 } ...
Kotlin 中有许多很棒的功能,我们可以利用所有这些功能在 Kotlin 中编写更好的应用程序。在所有这些特性中,apply和with是重要的特性。根据定义,apply 接受一个函数,并将其范围设置为调用 apply 的对象的范围。这意味着不需要对对象的显式引用。 一、什么时候用“apply”,什么时候用“with” ...
When to use apply or with? Kotlin documentation explains the usages here, but in my opinion, I find it useful when you don't want to type the object repeatedly. Without apply or with pluginManager.apply("com.example") pluginManager.apply("com.android.test") pluginManager.apply("org.jetbra...
with with函数也是一个单独的函数,并不是Kotlin中的extension,指定的T作为闭包的receiver,使用参数中闭包的返回结果 /** * Calls the specified function [block] with the given [receiver] as its receiver and returns its result. */ @kotlin.internal.InlineOnly ...
作用域函数是Kotlin比较重要的一个特性,共分为以下5种:let、run、with、apply 以及 also,这五个函数的工作方式可以说非常相似,但是我们需要了解的是这5种函数的差异,以便在不同的场景更好的利用它。读完这篇文章您将了解到: 什么是Kotlin的作用域函数?
关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。 使用let作用域函数转换对象并返回结果 首个提示关于let作用域函数,当你想对一个对象执行转换并分配结果时,它特别有用: ...
在Kotlin有一些可以简化代码的语法糖,比如 run、let、with、apply、also、takeIf、takeUnless 等。 再不明白这些语法糖的情况下去看 Kotlin 代码就会一脸懵逼,可当明白之后就会觉得原来可以这样简化。 带接收者的函数字面值 使用这些语法糖之前回顾一下 Kotlin 的函数式编程,在分析 Kotlin 使用 Anko 构建布局 文章中...