与之相对,with更适合于对一个对象进行多个操作,不需要关心返回值,或者需要返回不同的类型。例如,如果要计算一个对象基于当前状态的一个结果,那么可以使用 “with”。 综上所述,理解apply和with的正确用法和差异性,可以帮助开发者写出更清晰、高效的Kotlin代码。
在Kotlin有一些可以简化代码的语法糖,比如 run、let、with、apply、also、takeIf、takeUnless 等。 再不明白这些语法糖的情况下去看 Kotlin 代码就会一脸懵逼,可当明白之后就会觉得原来可以这样简化。 带接收者的函数字面值 使用这些语法糖之前回顾一下 Kotlin 的函数式编程,在分析 Kotlin 使用 Anko 构建布局 文章中...
Kotlin 中的 apply、also、run 和with 是作用域函数,它们各自有不同的应用场景。 apply 函数应用场景 apply 函数主要用于对象的初始化或批量配置属性。它返回调用对象本身,因此非常适合链式调用。 对象初始化:在创建对象后立即配置其属性。 kotlin val user = User().apply { name = "Alice" age = 30 email ...
Kotlin 中有许多很棒的功能,我们可以利用所有这些功能在 Kotlin 中编写更好的应用程序。在所有这些特性中,apply和with是重要的特性。根据定义,apply 接受一个函数,并将其范围设置为调用 apply 的对象的范围。这意味着不需要对对象的显式引用。 一、什么时候用“apply”,什么时候用“with” 根据定义,apply 接受一个...
Kotlin中的let、with、run、apply、also函数是高阶扩展函数,它们各自有不同的用途和特点:let函数:用途:常用于非空安全调用及简化多次引用同一对象的代码。特点:接收一个lambda表达式,该表达式的执行结果作为let函数的返回值。在lambda表达式内部,可以安全地使用let调用的对象而无需担心空指针异常。with...
在Kotlin中,有一些用于扩展 & 方便开发者编码的内置函数,能大大提高开发者的开发效率。今天,我将主要讲解的是: let函数 also函数 with函数 run函数 apply函数 基础知识:接口回调中Lambda使用 在Kotlin中可使用Lambda函数简化一些不必要的嵌套接口回调方法 注:仅支持单个抽象方法回调,多个回调方法不支持。 代码语言:...
关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。 使用let作用域函数转换对象并返回结果 首个提示关于let作用域函数,当你想对一个对象执行转换并分配结果时,它特别有用: ...
在 Kotlin 的世界中,让程序员们容易混淆却又深感有用的高阶函数「let」、「with」、「apply」、「run」、「also」在特定场景下有着独特的用途。首先来探讨「let」函数的常见用途。在操作数据或进行多步处理时,「let」能与「?.」联合使用,取代繁琐的 IF 判断,简化代码结构。接着,「apply」函数...
最近的项目采用Kt编写的,回顾一下kotlin的知识点。 其中和java最特别的几个使用是需要重点学习回顾的:let,run,with,apply,also等等。 回顾 重点就是上图所描述的,其中的差别主要是 参考 代码 let // 判断中文环境 - it的方式 protected fun isChinese():Boolean ...
本文转自Kotlin 深入浅出 作用域函数 下面我将关于 run、with、T.run、T.let、T.also 和 T.apply 这些函数,并把它们称为作用域函数,因为我注意到它们的主要功能是为调用者函数提供内部作用域。 说明作用域最简单的方式是 run 函数: fun test() { var mood = "I am sad" run { val mood = "I am ...