let函数:返回值 = 最后一行 / return的表达式 also函数:返回值 = 传入的对象的本身 2.2 使用示例 // let函数varresult=mVar.let{it.function1()it.function2()it.function3()999}// 最终结果 = 返回999给变量result// also函数varresult=mVar.also{it.function1()it.function2()it.function3()999}// ...
apply 函数代码示例 :后面设置 可读 , 可写 , 可执行 权限的配置操作 , 可以在 apply 标准库函数中完成 , 代码如下 : 代码语言:javascript 复制 importjava.io.File funmain(){val file=File("hello.txt").apply{this.setReadable(true)this.setWritable(true)this.setExecutable(true)}} 二、let 标准库函数...
Kotlin中also与apply的区别 also和apply的差别主要存在于lambda表达式内context表示方式also是通过传入的参数(it)来表示apply是通过this来表示 also 可用于不更改对象的其他操作,例如记录或者打印调试信息 val nums = mutableListOf("one", "two", "three") numbers.also { println("在列表添加新元素: $it") } ....
also函数:返回值 = 传入的对象的本身 2.2 使用示例 代码语言:javascript 复制 // let函数varresult=mVar.let{it.function1()it.function2()it.function3()999}// 最终结果 = 返回999给变量result// also函数varresult=mVar.also{it.function1()it.function2()it.function3()999}// 最终结果 = 返回一个m...
apply、also介绍 两者都是T的扩展函数,也就是任何类型对象都调用apply、also; 两者的返回值都是this,也就是函数调用者; apply的闭包使用this来访问函数调用者,also的闭包使用it来访问函数的调用者。 一看看apply、also源码 publicinlinefun<T>T.apply(block:T.()->Unit):T{//1contract{callsInPlace(block,Invo...
从结构上来看apply函数和run函数很像,唯一不同点就是它们各自返回的值不一样,run函数是以闭包形式返回最后一行代码的值,而apply函数的返回的是传入对象的本身。 五、内联扩展函数 also 5.1 also 函数使用的一般结构 object.also {// todo} 5.2 also 函数的inline+lambda结构 ...
apply函数主要用于初始化或更改对象,因为它用于在不使用对象的函数的情况下返回自身。 2.5 also inline fun <T> T.also(block: (T) -> Unit): T also是 T 的扩展函数,返回值与apply一致,直接返回T。also函数的用法类似于let函数,将对象的上下文引用为“it”而不是“this”以及提供空安全检查方面。 因为T作...
2、扩展函数apply和also:also相对apply lambda增加了将this传入。其他都是一样的可以使用this,并且函数的返回是this。注意lambda的返回结果均会被忽略。同样出国出现函数链的方式将apply和also交替使用会使代码更清晰 apply更适合改变对象自身,用于一些初始化的操作;also则更加偏向于在处理完对象后还需要做其他相关的操作...
关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。 使用let作用域函数转换对象并返回结果 首个提示关于let作用域函数,当你想对一个对象执行转换并分配结果时,它特别有用: ...
五、also 标准库函数 六、takeIf 标准库函数 七、takeUnless 标准库函数 Kotlin 语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin 类型都可以调用这些函数 ; 一、apply 标准库函数 ...