Kotlin之let,apply,with,run函数区别
来源:互联网 发布:柔道 知乎 编辑:程序博客网 时间:2024/05/23 22:14
Kotlin之let,apply,with,run函数区别
很长一段时间内都一直使用Kotlin这门语言,也只是纯粹使用简单语法,最近有时候写的代码,编辑器自动提示使用let等函数,然后就专门花点时间研究了下。
let
首先let()的定义是这样的,默认当前这个对象作为闭包的it参数,返回值是函数里面最后一行,或者指定return
- 1
- 1
简单示例:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
可以看看最后生成的class文件,代码已经经过格式化了,编译器只是在我们原先的变量后面添加了let里面的内容。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
来个复杂一定的例子
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
编译过后的class文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
apply
apply函数是这样的,调用某对象的apply函数,在函数范围内,可以任意调用该对象的任意方法,并返回该对象
- 1
- 1
代码示例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
编译过后的class文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
with
with函数是一个单独的函数,并不是Kotlin中的extension,所以调用方式有点不一样,返回是最后一行,然后可以直接调用对象的方法,感觉像是let和apply的结合。
- 1
- 1
代码示例:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
class文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
run
run函数和apply函数很像,只不过run函数是使用最后一行的返回,apply返回当前自己的对象。
- 1
- 1
代码示例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
class文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
总结
怎么样,是不是看晕了,没关系,我们来总结下。
阅读全文
1 0
- Kotlin之let,apply,with,run函数区别
- Kotlin之let,apply,with,run函数区别
- Kotlin之let,apply,with,run函数区别
- Kotlin之let,apply,with,run函数区别
- 简述Kotlin中let, apply, run, with的区别
- Kotlin:run、apply、let、also、with的用法和区别
- Kotlin基础篇之let、with、run、apply、also函数的使用
- Kotlin学习笔记(2):run、apply、let、also、with的用法和区别
- Kotlin回调的使用以及let、also、with、run、apply函数的用法
- Kotlin简明学习,标准库中的let,apply,with,run方法
- kotlin 语法分析(五)-- with ,let ,apply
- Koltin-let apply also run with的比较
- Kotlin学习之函数
- Kotlin之构造函数
- call/apply let const
- kotlin 踩坑实录(一)之apply
- Kotlin函数之基础函数
- JavaScript之call() 、apply() 函数
- JAVA--锁
- 成为Java顶尖程序员 ,看这11本书就够了
- Servlet3.0学习总结(二)——使用注解标注过滤器(Filter)
- Android Arm Inline Hook
- 写给需要面试经验的交互设计师(下)
- Kotlin之let,apply,with,run函数区别
- java导出文件实现下拉框联动效果
- AWVS使用教程
- FragmentPagerAdapter.notifyDataSetChanged失效详解
- 滚动条的相关插件(mCustomScrollbar)
- echart主题工具的使用
- selenium自动化测试资源整理(含所有版本chrome、chromedriver、firefox下载链接)
- axios拦截token
- SecureCRT+Xming实现Linux远程图形绘画