3

Java 和 Scala 都是 OO 编程语言(Scala 也是函数式的)。我是 Scala 的新手,据我了解,Scala 是对 Java 的改进(就 OOP 而言)。Java中有哪些特性/功能,但Scala中没有引入?以下是我知道的几个:

  1. Scala没有静态。相反,它有对象。

  2. Scala 没有“检查异常”的概念。

  3. Scala 中没有原语。

4

1 回答 1

9

某物是否是“特征”当然是有争议的。您也可以说,Scala 具有不检查异常,因此不检查 PITA 的特性……与统一类型和原语相同(出于性能原因,Scala 仍然具有这些特性)。

否则,我会想到以下内容

  • 枚举。不是 Scala 中的语言结构
  • Java 意义上的 for 循环,没有breakcontinue(仅通过普通方法);因此没有跳转标签
  • 您可以在 Java 类中拥有多个独立的构造函数(我认为),而在 Scala 中,每个辅助构造函数都必须调用主构造函数(对吗?)
  • 变量的定义和赋值分隔 ( final int x; ...; x = 3)
  • assert不是语言结构
  • 方法参数在 Java 中充当可变变量,在 Scala 中它们是只读变量。
  • 与不static支持单例有关object:没有静态内部类
  • 没有特殊的三元运算符?;在 Scala 中你使用ifwhich 是一个表达式
  • 没有数组字面量,尽管我想Array(1, 2, 3)可以在未来的 Scala 编译器版本中进行优化。
  • switch和模式匹配的工作方式不同。switch允许通过案例,但仅适用于少数类型。
  • 一些更原始的运算符,例如 pre-/post increment ++ii++

大多数其他事情是对事物的不同看法(例如声明站点与调用站点差异),但不是仅存在于Java中的真正特性。

于 2013-10-16T15:34:41.570 回答