Łuk*_*Lew 21 jvm scala language-design jvm-languages scala-2.8
Scala是一种很棒的语言,但是我想知道如果它有自己的运行时怎么可以改进?
即因为JVM选择而做出的设计选择是什么?
Von*_*onC 26
我所知道的两个最重要的妥协是:
在Scala 2.8中处理数组的新方案.该方案不依赖于装箱/拆箱和其他编译器魔术,而是依赖于隐式转换和清单来集成阵列
当涉及到管理泛型类型(带有边界)时,这些是JVM的两个主要限制:Java JVM不保留通用对象中的确切类型,并且它具有"原始"类型.
但你也可以考虑:
@tailrec注释)@proxy)完成为了涵盖尽可能多的可能性,Scala提供:
- 传统的班级类型,
- 值类类型,
- 不可侵犯的类型,
- Monad类型,
- 特质类型,
- 单例对象类型(过程模块,实用程序类等),
- 复合类型,
- 功能类型,
- 案例类,
- 路径依赖类型,
- 匿名类型,
- 自我类型,
- 输入别名,
- 通用类型,
- 协变泛型类型,
- 逆变通用类型,
- 有界泛型类型,
- 抽象类型,
- 存在类型,
- 隐含类型,
- 增强类型,
- 查看有界类型,和
- 结构类型,当其他所有方法都失败时,允许进行鸭子打字