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)
说明:
- apply返回值类型永远是info本身,即调用它的对象本身
- apply 有this,this == info本身
- 由于返回值都是它本身,因此可以使用链式调用
参考:
上面这几种方式效果一样。
另外:因为返回值都是同一个文件,所以可以这么写,表示都对同一个文件进行操作
二. let函数
案例:
说明: - let返回值类型随匿名函数 (即lambda表达式) 的最后一行代码的改变而改变
- let函数的匿名函数中持有的是 it == 调用它的对象本身
name1.let
method1(it) //返回值是String
.let
method2(it) //返回值是Int
.let
method3(it) //返回值是Boolean
//最终返回值是Boolean
三. run函数
案例:配合具名函数
输出:
结合匿名函数(也就是lambda):
输出:
说明:
- run函数返回值类型随匿名函数 (即lambda表达式) 的最后一行代码的改变而改变
- 持有this == 调用它的对象本身,跟apply一样
四. with函数
具名操作:
输出:
匿名操作:
说明:跟run函数几乎一样,只是使用的操作不一样,with(参数),参数.run
五. also函数
案例:
说明:跟apply的差别是 apply里面是this == 调用它的对象本身,而also里面是 it = =调用它的对象本身
六. takeIf函数
案例和说明:
七. takeUnless
与takeIf相反
案例和说明:
总结:
- apply:返回值永远是调用它的对象本身,且持有this == 调用它的对象本身
- let:返回值与匿名函数(lambda)的最后一行代码有关,持有it == 调用它的对象本身
- run:返回值与匿名函数(lambda)的最后一行代码有关,持有this == 调用它的对象本身
- with:跟run一样
- also:返回值永远是调用它的对象本身,且持有it == 调用它的对象本身
- takeIf : 函数内为true则返回调用它的对象本身,false则返回null,持有it == 调用它的对象本身,结合?: 使用
- takeUnless : 函数内为true则返,回null,false则返回调用它的对象本身,持有it == 调用它的对象本身,结合 it.isNullOrBlank()一起使用
以上是关于Kotlin学习之---- 常见内置函数的总结apply,with,let,also,run....的主要内容,如果未能解决你的问题,请参考以下文章