• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
李冰381 显示全部楼层 发表于 2022-1-16 07:11:08 |阅读模式 打印 上一主题 下一主题
引用:
  1. var info : String ?= "Allen"
复制代码
  1. fun method1(name : String?) : String{
  2.      return "我是方法1"
  3. }
  4. fun method2(name : String) : Int{
  5.     return  2;
  6. }
  7. fun method3(age : Int) : Boolean{
  8.     return true
  9. }
复制代码
一. apply函数
  1.     info.apply {
  2.        method1(this)
  3.     }.apply {
  4.         println(this)
  5.     }.apply {
  6.         println(this)
  7.     }
复制代码
阐明:

  • apply返回值范例永世是info本身,即调用它的对象本身
  • apply 有this,this == info本身
  • 由于返回值都是它本身,因此可以利用链式调用
    参考:


    上面这几种方式结果一样。
    别的:由于返回值都是同一个文件,以是可以这么写,表现都对同一个文件举行操纵
    二. let函数
    案例:

    阐明:
  • let返回值范例随匿名函数 (即lambda表达式) 的末了一行代码的改变而改变
  • let函数的匿名函数中持有的是 it == 调用它的对象本身
  1.     name1.let {
  2.        method1(it) //返回值是String
  3.     }.let {
  4.       method2(it) //返回值是Int
  5.     }.let {
  6.       method3(it) //返回值是Boolean
  7.     }
  8.     //最终返回值是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()一起利用

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作