注解和反射
¶主要内容
- 注解的使用和定义
- 基于运行时的反射对类进行自省(introspect)
- Kotlin项目的真实例子
kotlin的注解的使用和Java极其相同,然而自定义注解类的声明语法却天壤之别。同样地,反射的API结构和Java也类似,但细节却不同。
泛型
¶主要内容
- 泛型函数和类的声明
- 类型擦除(erasure)和具现(reified)
- Declaration-site and use-site variance
kotlin的泛型类型并不属于类型系统上的实现,而是尽量往Java方向兼容。所以实现形式上很多概念是等价的。
高阶函数:lambda作为参数和返回
¶主要内容
- 函数类型
- 高阶函数以及其结构化代码
- 内联函数
- 非本地返回以及标签
- 匿名函数
higher-order functions , 高阶函数,指函数包含lambda入参或lambda作为返回值的函数。
Operator overloading and other conventions
¶主要内容
- 操作符重载
- 指名(special-named)函数:convension的一种实现
- 属性委派
类似于Java语言有好几样特性一样,譬如对象实现了java.lang.Iterable
接口的可以使用for
循环,实现了java.lang.AutoCloseable
接口的可以使用try-with-resources语句(Java 8 之后)。Kotlin提供了一种 convertions 技术,实现对操作符的重载。