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)。 好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢...
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函数和run函数很像,唯一不同点就是它们各自返回的值不一样,run函数是以闭包形式返回最后一行代码的值,而apply函数的返回的是传入对象的本身。 五、内联扩展函数 also 5.1 also 函数使用的一般结构 object.also {// todo} 5.2 also 函数的inline+lambda结构 publicinlinefun<T>T.also(block: (...
关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。 使用let作用域函数转换对象并返回结果 首个提示关于let作用域函数,当你想对一个对象执行转换并分配结果时,它特别有用: ...
let函数 also函数 with函数 run函数 apply函数 基础知识:接口回调中Lambda使用 在Kotlin中可使用Lambda函数简化一些不必要的嵌套接口回调方法 注:仅支持单个抽象方法回调,多个回调方法不支持。 代码语言:javascript 复制 // Java接口回调mVar.setEventListener(newExamEventListener(){publicvoidonSuccess(Data data){// ...
类似let,区别是,返回值是调用者自己。 在作用域中使用 it 代替调用者,调用者为返回值。 六、 总结 上面五个函数,不论用哪个,都可以完成类似功能,只不过使用恰当的函数,可以进一步减少代码量,选择标准可以参考下面图片: let、run、with、apply、also 如何选择 ...
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。在理解之前,需要我们理解 扩展函数 与高阶函数 的概念。 扩展函数 Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式。 这通过叫做扩展的特殊声明完成。 如我们想为String类型扩展一个打印方法,直接定义一个...