记录
| 日期 | 说明 |
|---|---|
| 2023/1/2 | 首次创建 |
总纲
关于Kotlin的一些概念
函数式api
T.let{}- it
- 把当前调用的对象当作参数传递给lambda
- 最后一行代码作为返回值
T.also{}- it
- 把当前调用的对象当作参数传递到lambda
- 返回的是当前调用的对象本身
with(T,{})- this
- 两个参数,第一个为任意对象,第二个为lambda
- 最后一行代码作为返回值
T.run{}- this
- 把当前调用的对象当作参数传递到lambda
- 最后一行代码作为返回值
T.apply{}- this
- 把当前调用的对象当作参数传递到lambda
- 返回的是当前调用的对象本身
静态
- companion object伴生类
- object单例类
- @jvmStatic注解方法
- 只能注解伴生类或单例类的方法
- 定义顶层方法
- 顶层方法:指不定义在任何类中的方法
集合
- 可变
- listOf
- setOf
- mapOf: mapOf("a" to 1, "b" to 2) ?
- 不可变
- mutableListOf
- mutableSetOf
- mutableMapOf
- 函数式api
- 最大:maxOf
- 映射:map
- 过滤:filter
- ...
延迟初始化
- lateinit
- 修饰var
- 可以用
::XXX.isInitialized判断是否初始化 - 事前必须确保已经初始化
- lazy:使用时才会初始化
密封类
- sealed class
for
- 0..10
- 0 until 10
- 10 downTo 0
- 0..10 step 2
单例
- object修饰类