与 Scala 对比

Kotlin 设计时的俩个主要目标是:

至少和 java 运行速度一样快

在保证语言尽量简单的情况下在易用性上提高

考虑到这俩点,如果你喜欢 Scala ,你可能不需要 Kotlin

Scala 有而 Kotlin 没有的

隐式转换,隐式参数
—在 Scala 中,在不适用 debugger 的时候很难知道代码发生了什么,因为太多的东西是隐式的
—通过函数增加类型在 kotlin 中需要使用扩展函数

可重载和类型成员

路径依赖的类型

Existential types
—类型推断是很特殊的情形

特征的初始化逻辑很复杂
—参看类和继承

自定义象征操作
—参看操作符重载

内建 xml
—参看Type-safe Groovy-style builders

以后 kotlin可能会添加的特性:

结构类型

值类型

Yield 操作符

Actors

并行集合(Parallel collections)

Kotlin 有而 Scala 没有的

零开销的null安全

  • Scala的是Option,是在句法和运行时的包装

Smart casts

Kotlin 的内联函数非局部的跳转

First-class delegation。也通过第三方插件:Autoproxy实现