kotlin lambda 作为参数传递学习2022-06-30

image.png

如果使用lambda作为参数,则尽量在方法声明时使用内联关键字 inLine 这样会减少损耗。、
注意:lambda 表达式的 最后一行代码是 表达式的返回值


image.png

将方法作为参数方法的实现传递使用
methodResponseResult方法 添加 :: 之后 methodResponseResult会变成函数类型的对象。 便可以作为responseResult 参数的实现传入。


image.png

函数返回函数
image.png

匿名函数与具名函数
image.png

let函数 函数内部是it 引用, 函数返回值为代码最后一行。 函数可以使用具名函数 前面加:: 即可


image.png

let函数返回 代码的最后一行
let 和 apply的区别
image.png

!! 的使用 意思为不管会不会空 都执行 kotlin 中叫做断言


image.png

空合并操作符 ?: 的使用


image.png

apply函数的使用 函数内部是 this引用 apply函数返回值为调用者本身,函数可以使用具名函数 前面加:: 即可
image.png

run 函数使用 run函数内部是 this 引用, 返回值为 内部代码最后一行,函数可以使用具名函数 前面加:: 即可


image.png

with 函数的使用 函数是传入参数 不可以链式调用,内部持有引用为this 返回值为代码最后一行
image.png

also 函数的使用 函数内部持有的是it 关键字引用 返回值为调用者本身。
image.png

takeIf 函数的使用 内部持有关键字 it 引用
image.png

空合并操作符 ?:
image.png

takeUnless 函数使用 内部持有关键字 it 引用


image.png
image.png

list 集合的创建 和 使用


image.png

可变list集合学习 不可变的集合,无法完成可变的操作

image.png

不可变集合变换可变集合


image.png

可变集合变换不可变集合


image.png

mutator 函数学习 可以对集合进行非常方便的操作
image.png

list 集合 遍历方式
image.png

list 集合 元素解构获取 与过滤


image.png

set 集合 创建与元素获取
image.png

set 集合 可变集合创建 与操作
image.png

集合转换 去重使用
image.png

kotlin 的数组创建方式
image.png

map集合的创建
image.png

map集合值的获取


image.png

map 集合的遍历方式
image.png

image.png

map集合的可变集合创建 与集合中数据的操作方法
image.png

kotlin 新建的class 的构造方法 中的参数, 必须使用var 或者 val 修饰之后,才能直接使用!!! 如果不修饰,必须要写参数去接收才行。
image.png

image.png

kotlin 多个构造方法 写法。与调用, 必须使用关键字constructor 。必须 调用主构造方法。


image.png

构造函数中添加默认参数

image.png

如果构造函数都有默认参数,调用的时候,一个参数不传递,会优先调用主构造参数。
image.png

kotlin init 代码块 新建的对象的时候,会优先于其他构造参数调用。可以在代码块中做一些校验,并且构造方法中的参数没有被修饰也能直接使用。
同时 init 的代码块的执行顺序 和 写在类中的val、var变量 的执行顺序为:谁写在前面 谁就会先执行。
image.png

懒加载 by lazy 使用: 调用的时候 方法才会开始执行。
image.png

kotiln 中 open 关键字的 使用
kotlin 中 所有的类 和 类中的函数 默认都是final 修饰的,如果要继承类、重写父类方法 都必须在父类中添加关键字open
image.png

kotlin 关键字 object 的使用
object 修饰的类 会自动变成一个单例模式的类 可以直接调用类中公有的变量和方法。类中的init 模块中的代码,想当于java 类中的 static 代码块。
image.png

object 关键字 可以直接 通过匿名类赋值的写法,对类的方法进行重写, 这样用起来不用继承类,非常方便。
image.png

companion 关键字使用 相当于 java的 static变量 和static 方法。
image.png

kotlin 内部类的使用 内部类要增加 inner 关键字 才能成为内部类 如果不添加 inner 关键字 则为嵌套类,只能外部类调用内部类,内部类无法调用外部类。
image.png

kotlin 中 data 关键字的 使用 data 关键字 类似javabean 的用法 默认重写了 toString 方法和 equals 方法 ,可以直接打印 bean中的值, equals 比较的也是 bean 中的每一项的值。
image.png

image.png

!!!注意:kotlin data 数据类 中的copy 方法调用只会 只会调用主构造方法,会忽略次构造方法。
image.png

operator 重载运算符 关键字 使用
image.png

ktlin 中的 枚举 enum
image.png

enum 类带参数的使用
image.png

kotlin 的 抽象类 abstract 使用

kotlin 泛型使用
image.png

泛型的方法中参数写法 传入参数 与 返回参数 泛型写法
image.png

泛型的约束 使用关键字 : + 父类即可
image.png

泛型添加扩展函数的方式
image.png

关键字 vararg 动态参数 用 这个关键字修饰之后 可以传任意数量的参数
out 关键字 修饰的变量 只能读取 不能 修改
image.png

关键字 out 和 in
out 关键字修饰的泛型: 父类集合可以接收子类集合的赋值 相当于java中的 ? extends T
in 关键字修饰的泛型:子类集合可以接收父类的赋值 相当于java中的 ? super T
image.png

关键字 reified 使用
image.png

kotlin 扩展函数的增加 直接写一个方法 方法名使用 类名.[新的方法名] 就可以完成 非常的方便。
image.png

image.png

kotlin 的let 函数的 写法 就是使用了泛型的扩展函数 我们也可以通过对源码的阅读 写出自己方便使用的扩展函数
image.png

image.png

kotlin 的扩展属性写法 必须使用get() 赋值
image.png

kotlin 协程
image.png

可空类型函数扩展。
image.png

关键字 infix 的使用
image.png

image.png

kotlin 扩展文件使用 类似工具类

image.png

kotlin 的 方法重命名
image.png

通过使用匿名扩展函数的方法 让 lambda 函数 内部持有this 引用
image.png

list 集合 的map 操作 flatmap 过滤 filter 函数 zip 合并
image.png

单例模式 懒汉式 双重校验 实现 饿汉式 只需要 object 类名 就可以了
image.png

注解使用
image.png

image.png

image.png

image.png

对于扩展函数 泛型 的综合运用 重点 lambda 函数默认的 返回值是 方法的最后一行,I.() 这样的写法 可以持有 this 引用 。
image.png

image.png

你可能感兴趣的:(kotlin lambda 作为参数传递学习2022-06-30)