引用:
- 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()一起利用
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |