问题标签 [scala]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
707 浏览

scala - Scala 库在命名包时是否遵循与 Java 相同的倒置域约定?

我正在寻找编写一个小型 Scala 库来了解它的 Actor 编程模型。

在我遇到的示例代码中,一些库使用反向域(例如 org.foo.bar)作为包,而另一些则没有(可能只是为了简洁)。

Scala 库是否建议使用与 Java 相同的包命名约定?更一般地说,是否有任何好的 Scala 编码风格建议,比如 Python 对PEP 8的建议?

是的,可能是本末倒置,但我发现通过看到一些已经动摇的约定,我可以对一门语言有一种不错的感觉。

谢谢

0 投票
2 回答
2606 浏览

scala - 为什么 this.type 不能用于新实例

我希望能够使用 this.type 来定义一种方法,该方法可以创建不可变案例类的新实例。像这样的东西:

不幸的是,编译器抱怨

为什么新的案例类与 this.type 不匹配?

如果我在 Base.new_with_changes 中将 this.type 更改为 Base 并在 Derived.new_with_changes 中将 Derived 更改为有效,但它似乎错过了 this.type 的优点。

编辑:问题的真正意图是为什么在 Scala 中没有一种等效的方式来声明向下的调用者执行向下转换,这与 this.type 所做的方式非常相似,但对于一般类型。我不认为这很容易,但它会很好。

0 投票
2 回答
1698 浏览

java - 在 Linux / Java / Scala 中枚举附加的 DVD 驱动器

在我的 Scala(在 Java 之上运行)应用程序中,我想获取包含 DVD 媒体的所有驱动器的列表,例如:

  • /dev/scd0 星际迷航 DS9 DVD1
  • /dev/scd0 4400 DVD1

不确定是否可以获得光盘的名称,但无论如何路径对我来说很重要。

我更喜欢纯 Java / Scala 解决方案(使用 file.io 的东西)。如果这不可能,访问正确的 Linux 文件也可以(例如 /proc/something)。

提前致谢!

0 投票
4 回答
17653 浏览

syntax - Scala 中符号文字的一些示例用例是什么?

从我在 Scala 上读到的内容中,符号文字的使用并不是很清楚。有人愿意分享一些现实世界的用途吗?

符号文字是否涵盖了特定的 Java 习惯用法?哪些语言有类似的结构?我来自 Python 背景,不确定该语言中有什么类似的东西。

是什么促使我使用“HelloWorld”与“HelloWorld”?

谢谢

0 投票
2 回答
376 浏览

java - 我可以确定正则表达式匹配的第一个字符集吗?

我希望能够计算所有字符的集合,这些字符可能与给定java.util.regex.Pattern. 更正式地说,给定 DFA 等价于某个正则表达式,我想要从起始状态开始的所有传出转换的集合。

一个例子:

该集合first应包含以下元素:

有任何想法吗?我很清楚我可以自己构建 DFA 并以这种方式确定相关状态,但我想避免这种麻烦(阅读:这对我来说不值那么多)。请注意,我的宿主语言实际上是 Scala,因此我可以访问所有核心 Scala 库(值得一提)。

0 投票
4 回答
5325 浏览

scala - Scala: Is there a way to use PriorityQueue like I would in Java?

I have a class that I would like to use in a scala.collection.mutable.PriorityQueue, but I don't want to make it Ordered[A] just for this one purpose. I don't consider the ordering I want to use with respect to the PriorityQueue as the natural ordering of the class.

So, in my PriorityQueue, I would like the values to be ordered by 'sequence'. However, just because two objects have the same sequence doesn't make them naturally equal since the contents of their 'values' may be different.

This is where, in Java, it's nice to be able to supply an alternate Comparator object to the PriorityQueue. My Comparator would simply order the objects with respect to their 'sequence' and ignores their 'values'.

The PriorityQueue class must be parameterized with a "A <% Ordered[A]"

From what I've read, this means my class must extend Ordered[A] or I must provide an "implicit def" type conversion to Ordered[A], which, honestly, feels inelegant.

The Java solution seems more "functional" allowing me to pass a Comparator function-like object instead of forcing me into a class hierarchy or monkeypatching my class.

I realize there are alternatives to using PrioirityQueue, but I feel like I may be bumping up against the Scala learning curve here and don't want to give up without exploring this design decision fully.

Is this just an unfortunate decision in the Scala library or am I misunderstanding some sort of calling convention that makes PriorityQueue more usable and 'functional'?

Thanks

0 投票
6 回答
2069 浏览

java - Scala 工具的当前状态是什么?

在过去的一年里,我听到越来越多关于 Scala 语言的炒作。我知道有几个现有项目计划将 Scala 支持与 IDE 集成;但是,并不总是很清楚集成到底有多好。

他们目前是否支持 Intellisense 以及 Eclipse 和 Netbeans 对 Java 语言的支持?他们是否也支持即时验证?

0 投票
3 回答
25998 浏览

syntax - 在 Scala 中使用类变量作为常量

我正在努力学习 Scala——来自 C++ 背景。我正在尝试为我正在一起破解的任务跟踪应用程序编写一个小班,以帮助我学习如何编写 Scala 代码。

这似乎应该很简单,但由于某种原因它让我无法理解:

我试图提供三个构造函数:任务(ID,描述),任务(ID),任务(描述)。在后两种情况下,如果调用者未提供其中一个值,我想将这些值初始化为常量值。我希望能够在课堂之外检查这一点以进行单元测试。所以我想加入两个公共 vals 可以让我在课外进行检查,以确保我的状态符合我的预期。

但是,由于某种原因,此代码将无法编译。我收到以下错误:

那么我错过了什么?我正在研究“Scala 编程”,所以如果这个问题有一个简单的答案,请给我页码。我不介意阅读第 60 页和第 62 页上的代码,但我不明白为什么此代码会失败。

我猜这与这些是构造函数方法有关,并且可能两个 val 直到构造函数结束时才被初始化。如果是这种情况,有什么方法可以达到我想要的效果吗?

0 投票
9 回答
63420 浏览

java - 从 Scala 文件创建 jar 文件

我是 Scala 新手,不懂 Java。我想用一个简单的 Scala 文件创建一个 jar 文件。于是我有了我的HelloWorld.scala,生成了一个HelloWorld.jar。

清单.mf:

在我运行的控制台中:

0 投票
1 回答
4579 浏览

scala - Scala 中的抽象类型/类型参数

我正在尝试编写一些需要执行以下操作的 Scala 代码:

它失败了。我显然不了解 Scala 泛型参数。显然,误解是在 C++ 中,模板的功能本质上类似于字符串替换,因此只要传入的类具有默认构造函数, new Type() 就可以工作。然而,在 Scala 中,类型是不同种类的对象。