对比Scala
The main goal of the Kotlin team is to create a pragmatic and productive programming language, rather than to advance the state of the art in programming language research. 稍作考虑, 如果你对Scala已相当得心应手,你或许不需要再学习Kotlin
Scala有什么Kotlin没有的
- 隐式转换, 限定性因素, 等等
- 在Scala中, 由于画面中有太多的隐式转换,有时不使用debugger,会很难弄清code中具体发生了什么
- 为了做到功能多样性,Kotlin会使用扩展函数.
- 重写类型成员
- 路径依赖性类型
- 宏
- 存在类型
- 类型预测 是一种非常特殊的情况
- 特性初始化的复杂逻辑
- 参照 类和接口
- 自定义符号运算
- 参照 运算符重载
- 结构类型
- 值类型
- We plan to support Project Valhalla once it is released as part of the JDK
- Yield operator
- Actors
- Kotlin supports Quasar, a third-party framework for actor support on the JVM
- 并行集合
- Kotlin supports Java 8 streams, which provide similar functionality
Kotlin有什么Scala没有的
- 零开销 空安全
- Scala 的 Option,它是语法和运行时包装
- 智能转换
- Kotlin的内联函数助力非局部跳跃
- 第一类 授权. Also implemented via 3rd party plugin: Autoproxy