java - Java 中的特性在 Scala 中不存在

标签 java scala

<分区>

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

  1. Scala 没有静态。取而代之的是它有对象。

  2. Scala没有“checked exception”的概念。

  3. Scala 中没有原语。

最佳答案

某事是否是“功能”当然值得商榷。您也可以说,Scala 具有不检查异常的特性,因此不是 PITA...与统一类型和基元相同(出于性能原因,Scala 在底层仍然具有)。

否则,我会想到以下内容

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

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

关于java - Java 中的特性在 Scala 中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19407274/

相关文章:

scala - Anorm 解析浮点值

scala - 两个字符串,类型相同,一个有 "toInt"方法,另一个没有

scala - Akka:当你告诉 ActorRef 并且它希望你问时会发生什么?

java - 关闭框架java后重新启用按钮

java - 什么是PECS(生产者扩展了 super 消费者)?

java - itext7 Java 为现有 pdf 中的标题创建 PdfExplicitDestination

java - 如何收集 JVM 启动时的性能/分析数据

scala - Spark CSV 包无法处理字段中的\n

java - 无法使用 RandomAcessFile 读取和打印一组字节作为字符串

java - 是否有可能在 Java 的条件中有一个条件