通过以上两点,我们就成功在语法层面有了一个 isAdult 属性;但是在实现层面,isAdult 仍然还是个方法。这也就意味着,isAdult 本身不会占用内存,它的性能和我们用 Java 写的方法是一样的。而这在 Java 当中是无法实现的。
来自:02 | 面向对象:理解Kotlin设计者的良苦用心
6 人划过
可以发现,由于在 Kotlin 中,整型数字“1”被看作是对象了,所以我们可以调用它的成员方法 toDouble(),而这样的代码在 Java 中是无法实现的。
来自:01 | Kotlin基础语法:正式开启学习之旅
5 人划过
Kotlin 官方只建议我们将 inline 用于修饰高阶函数。
来自:08 | 实战:用Kotlin写一个英语词频统计程序
4 人划过
高阶函数是将函数用作参数或返回值的函数。
来自:07 | 高阶函数:为什么说函数是Kotlin的“一等公民”?
4 人划过
同样的一个函数,加上 suspend 修饰以后,它的函数类型就会发生改变
来自:15 | 挂起函数:Kotlin协程的核心
3 人划过
协程是有生命周期的,同时也发现,协程其实是结构化的。
来自:16 | Job:协程也有生命周期吗?
3 人划过
要注意,对于 Java 当中的同步手段,我们并不能直接照搬到 Kotlin 协程当中来,其中最大的问题,就是 synchronized 不支持挂起函数。
来自:22 | 并发:协程不需要处理同步吗?
3 人划过
协程,不会与特定的线程绑定,它可以在不同的线程之间灵活切换。
来自:13 | 什么是“协程思维模型”?
3 人划过
函数可以作为参数和返回值,这就是高阶函数和 Lambda
来自:加餐一 | 初识Kotlin函数式编程
3 人划过
另外我也画了一张结构图,来描述 CoroutineContext 元素之间的关系,方便你建立完整的知识体系。
来自:17 | Context:万物皆为Context?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容

编辑推荐

看过的人还看了





