函数引用 可以将 具名函数 转为 函数的参数值 , 只要可以使用 Lambda 表达式 参数的地方 , 就可以使用 函数引用 进行替代 ;
定义变量 时 , 如果将变量值 直接赋值给该变量 , 那么就可以 不用显示声明该变量的类型 ;
带参数的匿名函数 : 匿名函数 的 参数类型 放在 函数类型 定义中 , 参数名 放在 函数体 内 ;
Google 在 2017 年 正式宣布 Kotlin 为 Android 开发的推荐语言 , 之后逐渐会淘汰 Java 语言 ;
调用 CoroutineScope#produce 函数 构造的 生产者协程 , 以及 调用 CoroutineScope#actor 函数 构造的 消费者协程 ,
协程中的 Channel 通道 是 并发的安全队列 , 不同的协程之间 可以 借助 Channel 通道 进行通信 ;
假如两个 Flow 流的 元素发射 不同步 , 则 先发射的元素 , 需要等待对应顺序的 后发射的元素到来 ;
这里特别注意 , 在协程中调用 挂起 suspend 函数 , 必须在 Dispatchers.Main 调度器中执行 ;
协程 挂起 操作 : 在协程中使用 delay 函数 , 挂起 20 秒时间 , 然后 20 秒后更新 UI ; delay 函数是 挂起 suspend 函数 ;
协程 在 调用 call 和 返回 return 基础上 , 又新增了两种 状态 :