Kotlin学习之---- 常见内置函数的总结apply,with,let,also,run....

Posted Allen_ZXJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin学习之---- 常见内置函数的总结apply,with,let,also,run....相关的知识,希望对你有一定的参考价值。

引用:

var info : String ?= "Allen"
fun method1(name : String?) : String
     return "我是方法1"


fun method2(name : String) : Int
    return  2;


fun method3(age : Int) : Boolean
    return true


一. apply函数

    info.apply 
       method1(this)
    .apply 
        println(this)
    .apply 
        println(this)
    

说明:

  1. apply返回值类型永远是info本身,即调用它的对象本身
  2. apply 有this,this == info本身
  3. 由于返回值都是它本身,因此可以使用链式调用
    参考:


    上面这几种方式效果一样。
    另外:因为返回值都是同一个文件,所以可以这么写,表示都对同一个文件进行操作
    二. let函数
    案例:

    说明:
  4. let返回值类型随匿名函数 (即lambda表达式) 的最后一行代码的改变而改变
  5. let函数的匿名函数中持有的是 it == 调用它的对象本身
    name1.let 
       method1(it) //返回值是String
    .let 
      method2(it) //返回值是Int
    .let 
      method3(it) //返回值是Boolean
    
    //最终返回值是Boolean

三. run函数
案例:配合具名函数

输出:

结合匿名函数(也就是lambda):

输出:

说明:

  1. run函数返回值类型随匿名函数 (即lambda表达式) 的最后一行代码的改变而改变
  2. 持有this == 调用它的对象本身,跟apply一样

四. with函数

具名操作:

输出:

匿名操作:

说明:跟run函数几乎一样,只是使用的操作不一样,with(参数),参数.run

五. also函数
案例:

说明:跟apply的差别是 apply里面是this == 调用它的对象本身,而also里面是 it = =调用它的对象本身

六. takeIf函数
案例和说明:

七. takeUnless
与takeIf相反
案例和说明:

总结:

  1. apply:返回值永远是调用它的对象本身,且持有this == 调用它的对象本身
  2. let:返回值与匿名函数(lambda)的最后一行代码有关,持有it == 调用它的对象本身
  3. run:返回值与匿名函数(lambda)的最后一行代码有关,持有this == 调用它的对象本身
  4. with:跟run一样
  5. also:返回值永远是调用它的对象本身,且持有it == 调用它的对象本身
  6. takeIf : 函数内为true则返回调用它的对象本身,false则返回null,持有it == 调用它的对象本身,结合?: 使用
  7. takeUnless : 函数内为true则返,回null,false则返回调用它的对象本身,持有it == 调用它的对象本身,结合 it.isNullOrBlank()一起使用

以上是关于Kotlin学习之---- 常见内置函数的总结apply,with,let,also,run....的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin学习之函数

Kotlin学习之变量和函数的讲解

kotlin学习之高阶函数及常用基本高阶函数

Kotlin学习之枚举类

Java多线程学习之synchronized总结

python3学习之内置函数