Java中的特性,在scala中不存在

时间:2013-10-16 15:18:02

标签: java scala

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

  1. Scala没有静态。而不是它有对象。

  2. Scala没有“已检查例外”的概念。

  3. Scala中没有原语。

1 个答案:

答案 0 :(得分:9)

某些东西是否是“特征”当然是值得商榷的。你可以说,Scala具有不检查异常的特性,因此不是PITA ...与统一类型和原语相同(Scala在性能原因下仍然存在)。

否则,我想到了以下内容

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

大多数其他事情是关于事物的不同的视图(例如声明站点与调用站点差异),但不是仅存在于Java中的真实功能。