with函数是:run全局函数和扩展run函数的结合体即:with是全局函数,with有一个receiver的传入参数和对应的receiver的扩展block函数;并且返回值都是block的返回值 apply函数:是T的扩展函数,对应的block是无参,返回值是this also函数:跟apply函数几乎是一样的,区别是also对应的block传入参数是this并且不是T的扩展函数 let...
对于with,T.run,T.apply接收者是this,而T.let和T.also接受者是it;对于with,T.run,T.let返回值是作用域的最后一个对象(this),而T.apply和T.also返回值是调用者本身(itself)。 好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢...
下面,我将讲解Kotlin里提供用于扩展 & 方便开发者编码的几个有用内置函数:let函数、also函数、with函数、 run函数、apply函数。 1. let函数 1.1 简介 1.2 使用方法 // 作用1:使用it替代object对象去访问其公有的属性 & 方法object.let{it.todo()} // 作用2:判断object为null的操作object?.let{//表示object...
从结构上来看apply函数和run函数很像,唯一不同点就是它们各自返回的值不一样,run函数是以闭包形式返回最后一行代码的值,而apply函数的返回的是传入对象的本身。 五、内联扩展函数 also 5.1 also 函数使用的一般结构 object.also {// todo} 5.2 also 函数的inline+lambda结构 publicinlinefun<T>T.also(block: (...
一、apply 标准库函数 二、let 标准库函数 三、run 标准库函数 1、run 函数传入 Lambda 表达式作为参数 2、run 函数传入函数引用作为参数 四、with 标准库函数 五、also 标准库函数 六、takeIf 标准库函数 七、takeUnless 标准库函数 Kotlin语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 ...
关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。 使用let作用域函数转换对象并返回结果 首个提示关于let作用域函数,当你想对一个对象执行转换并分配结果时,它特别有用: ...
Kotlin作为一种功能强大且易用的编程语言,其标准库提供了许多实用的函数,其中run、with、let、also和apply是五个非常常用的函数。这些函数可以帮助我们更加优雅和高效地编写代码,尤其是在链式调用和处理返回值的场景下。 一、run函数 run函数是Kotlin中非常常用的一个函数,它接受一个lambda表达式作为参数,并在lambda表达...
apply { //注意this关键字 this.name = "Penny" this.age = 18 this //或return this,最后一行为返回值 } p.debug() } let主要用于?符号修饰的变量,also预期用法类似(但不可修改it内容) fun testPerson(person: Person?) { person?.let { //注意it关键字 it.name = "Sheldon" it.age = 21 it...
Kotlin标准库中的let、with、run、apply、also这五个函数相当有意思。它们的实现非常简单,区区两三行,却直击了Java的若干痛点。 Kotlin对它们的定位是scope functions。这是什么意思呢? 我理解scope functions是指这些函数可以通过新的作用域操作对象,避免引入临时变量或一次性函数污染原作用域。
一、apply 标准库函数 二、let 标准库函数 三、run 标准库函数 1、run 函数传入 Lambda 表达式作为参数 2、run 函数传入函数引用作为参数 四、with 标准库函数 ...