泛型

主要内容

  1. 泛型函数和类的声明
  2. 类型擦除(erasure)和具现(reified)
  3. Declaration-site and use-site variance

kotlin的泛型类型并不属于类型系统上的实现,而是尽量往Java方向兼容。所以实现形式上很多概念是等价的。

Read more

Operator overloading and other conventions

主要内容

  1. 操作符重载
  2. 指名(special-named)函数:convension的一种实现
  3. 属性委派

类似于Java语言有好几样特性一样,譬如对象实现了java.lang.Iterable接口的可以使用for循环,实现了java.lang.AutoCloseable接口的可以使用try-with-resources语句(Java 8 之后)。Kotlin提供了一种 convertions 技术,实现对操作符的重载。

Read more

Kotlin 的类型系统

主要内容

  1. 空值处理
  2. 原生类型和对应的Java类型
  3. Kotlin的集合以及与Java的关系

Kotlin对空值类型的处理,并不是使用ADT。诸如OptionEither,而是使用符号记法?。对于类型转换,不使用协变逆协变,而是使用asAny?这种语法。

Read more