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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容