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. 由于返回值都是它本身,因此可以使用链式调用
    参考:
    Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第1张图片
    Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第2张图片
    Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第3张图片Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第4张图片上面这几种方式效果一样。
    另外:因为返回值都是同一个文件,所以可以这么写,表示都对同一个文件进行操作
    Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第5张图片二. let函数
    案例:
    Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第6张图片
    说明:
  4. let返回值类型随匿名函数 (即lambda表达式) 的最后一行代码的改变而改变
  5. let函数的匿名函数中持有的是 it == 调用它的对象本身
    name1.let {
       method1(it) //返回值是String
    }.let {
      method2(it) //返回值是Int
    }.let {
      method3(it) //返回值是Boolean
    }
    //最终返回值是Boolean

Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第7张图片

三. run函数
案例:配合具名函数
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第8张图片
输出:
在这里插入图片描述
结合匿名函数(也就是lambda):
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第9张图片
输出:
在这里插入图片描述
说明:

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

四. with函数
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第10张图片
具名操作:
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第11张图片
输出:
在这里插入图片描述
匿名操作:
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第12张图片
说明:跟run函数几乎一样,只是使用的操作不一样,with(参数){},参数.run{}

五. also函数
案例:
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第13张图片

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

六. takeIf函数
案例和说明:
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第14张图片
七. takeUnless
与takeIf相反
案例和说明:
Kotlin学习(四)之---- 常见内置函数的总结apply,with,let,also,run...._第15张图片
总结:

  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从基础到进阶,kotlin,开发语言,android,kotlin内置函数)