与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实现


本文转载自:https://huanglizhuo.gitbooks.io/kotlin-in-chinese/content/FAQ/Comparison2Scala.html