问题标签 [scala-2.9]

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 投票
3 回答
2169 浏览

scala - 为什么案例类只扩展 Product 而不是 Product1、Product2、...、ProductN?

在我了解到案例类扩展了 Product 之后,我想知道为什么它们不扩展 ProductN。例如,给定如下代码:

我希望Foo(1).asInstanceOf[Product1[Int]]能工作,但它没有(使用 Scala 2.9.1 检查,并由其他来源和Product文档确认)。

我对此很感兴趣,因为我想声明如下类:

这样,一元操作的节点必须实现 Product1。如果只是一个带有一个参数的案例类就足够了,那就太好了。

0 投票
1 回答
724 浏览

scala - 从 scala 2.8.1 到 scala 2.9.1 的主要变化是什么?

我正在研究在 scala 2.8.1 中实现的项目,想要迁移到 scala 2.9.1 并使用 akka-actors 库而不是标准库,但没有找到主要更改的良好摘要,我发现了以下内容:

从 scala 2.8.1 到 scala 2.9.1 的主要变化是什么?
迁移需要付出巨大努力的变化。

更新 1:谢谢,@VonC - 注意:请记住,其中一些更改在即将到来的 2.8.2 中被反向移植:Scala 2.8.2 发行版
更新 2:在 scala 2.9.1 控制台中发现Set4 的奇怪行为

0 投票
1 回答
509 浏览

scala - scala 2.9.1 中 Set4 的奇怪行为?

从 2.8.1 迁移到 2.9.1 发现有趣的事情。试图在控制台中写这个:

它给:

我正在使用 Scala 版本 2.9.1.final(Java HotSpot(TM) Client VM,Java 1.6.0_26)。
Set3 和 Set2 类也会发生同样的事情。
这些是已知问题吗?
或者,也许,我做错了什么?
在 scala 2.8.1 控制台中它可以工作,并返回:

我必须将这些报告为错误吗?

0 投票
2 回答
403 浏览

scala - ParVector 地图未并行运行

我有一些代码,例如:

ParVector 大约有 12 个元素。我注意到我所有的工作都是在主线程中完成的,所以我追踪了堆栈跟踪,发现在下面的行(在下面的链接中),ifParallel 是假的(来自 CanBuildFrom)。关于为什么它是错误的任何提示,以及我能做些什么来帮助它?

https://github.com/paulp/scala-full/blob/2.9.0.1/src/library/scala/collection/parallel/ParIterableLike.scala#L504

0 投票
1 回答
2592 浏览

scala - 从 trait 引用构造函数参数

在 Scala 中,特征是否可以引用它所混入的类的命名构造函数参数?下面的代码无法编译,因为 ModuleDao 的构造函数参数不是特征中定义的 val。如果我val在构造函数参数之前添加以使其公开,它会与特征中的那个匹配并编译,但我不希望将其设置为val.

0 投票
3 回答
2186 浏览

scala - scala如何相交和匹配集合中的元素

我有两组对象,我想得到两组的交集。集合中的对象如下所示

在另一堂课中,我得到了用户集并希望看到交集。

上面的代码不起作用并打印

但是,如果我使用 foreach 手动遍历集合,我会得到想要的结果

上面的代码打印

这工作得很好

以上印刷品

集合操作 & &- 等是否仅适用于原始对象?我是否必须对我的用户对象做一些额外的事情才能使它起作用?

0 投票
1 回答
647 浏览

java - Scala 2.9 桥接法

我正在使用 Scala 2.9.1

我已经这样定义了一个 Logging 特征:

我有一个 JMSPublisher 类,它混合了 Logging 特征:

这一切都编译得很好。我的问题是我有一个用户想要将我的 JMSPublisher 加载到 Spring 中。他正在使用 Spring 2.5.6。

在启动期间加载 ApplicationContext 时,应用程序崩溃并出现 IllegalStateException,抱怨它找不到与我的 Logging 特征相关的桥接方法。

这段代码在 Scala-2.8 下工作,我听说 Scala 正在标记具有一些在 2.9 中桥接的方法的 trait。我认为这就是导致 Spring 失败的原因。如果 Spring 无法加载我的类,我将无法升级到 Scala-2.9。

有没有人遇到过这个问题?是否有任何修复或解决方法?

0 投票
1 回答
602 浏览

arrays - Scala 2.9.1 中需要数组[Nothing with java.lang.Object]

我有一个奇怪的编译错误。违规行是:

和错误:

根据 JavaDoc 的构造函数DefaultComboBoxModel需要 an Object[],它可以是 aString[]或 Java 中的任何数组类型,因为数组是协变的,但在 Scala 中它们不是,所以我们必须使用Array[Object],这应该不是问题。

为什么编译器期待Array[Nothing with java.lang.Object]?我该如何解决?

这似乎是 Scala 2.9.1 版的新功能。我的应用程序过去一直在编译,直到几天前我安装了 2.9.1。一个令人困惑/令人担忧的事情是我没有更改 IntelliJ 中的项目编译器库版本,但不知何故它似乎正在使用它,也许是从我的 SCALA_HOME 环境变量中获取它?

0 投票
2 回答
7399 浏览

scala - 在 sbt 项目的类路径中添加 tools.jar

scala 2.9.1 控制台中的':javap' 命令需要'classpath' 中的tools.jar(来自JDK6)。从 cmd-line 可以使用“-cp”参数或 CLASSPATH 环境变量来完成。

如何对使用“console”和“console-quick”命令从 SBT 调用的 scala 控制台执行相同操作?

0 投票
3 回答
1159 浏览

scala - Scala Parallel Collections - 如何提前返回?

我有一个可能的输入值列表

我有一个很长的计算函数,它给了我一个结果

使用 scala 并行集合,我可以轻松做到

并行获取所有结果。问题是,我真的不想要所有的结果,我只想要第一个结果。一旦我的一个输入成功,我想要我的输出,并且想要继续我的生活。这做了很多额外的工作。

那么如何才能两全其美呢?我想要

  1. 获取从我的长函数返回的第一个结果
  2. 停止我所有其他线程的无用工作。

编辑- 我像一个愚蠢的Java程序员一样解决了它

这是在我的reallyLongFunction. 这有效,但感觉不是很scala。想要一个更好的方法来做到这一点......