【问题标题】:What parts of Java (Standard library) do you need to know to write Scala code?编写 Scala 代码需要了解 Java(标准库)的哪些部分?
【发布时间】:2023-03-20 14:09:01
【问题描述】:

编写 Scala 代码需要了解 Java(标准库)的哪些部分?

我正在自学 Scala,我真的很喜欢这种语言,但我有点不安,因为您还必须了解一些 Java 标准库才能编写 Scala 代码。

我不是 Java 程序员,所以我很好奇 Java 标准库的哪些“主要”部分没有在 Scala 标准库中表示?

【问题讨论】:

  • 这个问题对于 SO 来说可能太宽泛了。但是,例如,我总是参考 JavaDocs 的正则表达式(又名模式)。此外,java.util.concurrent 是必不可少的。这就是为什么你的两个答案都是“是和不是”的形式。
  • 为什么一个类来自 Java 还是 Scala 包很重要?如果 Scala 在 Java 核心中重写了自己的版本,为什么你会感觉更好?
  • @ChrisMartin:首先,因为 Scala 与 Java 没有任何关系。有(休眠的).NET 和 Scala 的本机实现,以及一个相当活跃的 ECMAScript 实现。我相信,Parrot VM 和 Rubinius VM 上也有一个计划,我知道人们对 Swift/Cocoa/iOS 平台上的一个感兴趣。这些都没有可用的 Java 生态系统。请注意,指定行为和重新实现行为不是一回事。例如,Java 语言规范指定了独立于 JVM 的数组的行为,但仍然使用它们的实现。

标签: scala


【解决方案1】:

使用 Scala 不需要了解 Java(标准库)(在某些情况下会有所帮助)。至于图书馆可以分为两种类型:

Original Scala Libraries 使用 Scala 编写,Scala Wrappers over Java Libraries 提供 Scala 友好的 API。

有一个信息丰富的stackoverflow帖子here(了解更多信息)。

【讨论】:

    【解决方案2】:

    您绝对不需要了解任何 Java 即可使用 Scala - 标准库包含您在基本级别所需的一切,以及更多。

    也就是说,Java 标准库非常庞大且完整。会有一些在 Scala 中不存在的部分。也就是说,由于从 Scala 调用 Java 代码并不困难,因此不需要“了解”Java 标准库。如果您发现您需要的东西不在 Scala 标准库中,而您在 Java 标准库中找到了它,那么您可以使用它。

    如果有的话,这只是另一种选择,这要归功于共享的底层架构。

    【讨论】:

    • 我觉得这个答案太乐观了。有像 Regex 和 Process 这样的标准工具,你真的必须能够查阅底层的 JavaDocs。
    • @som-snytt 我认为这与需要“了解标准库”不同,您只需要根据需要查看这些部分。这不是一个重要的障碍。问题似乎是担心 Java 标准库会增加您需要学习处理 Scala 的数量。我的观点是,Scala 和 Java 之间没有真正的障碍,这使它成为一个问题。
    • Java 很大,但“非常完整”是个谎言。
    • 好吧,你可以换种说法,但我认为如果不熟悉 JavaDoc 必须阅读 Java 语法是一个障碍。
    猜你喜欢
    • 2018-07-05
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多