问题标签 [scala-2.7]

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 投票
10 回答
80279 浏览

java - 将 Java 集合转换为 Scala 集合

与 Stack Overflow 问题Scala 等效于 new HashSet(Collection)相关,如何将 Java 集合(java.util.List比如说)转换为 Scala 集合List

我实际上是在尝试将 Java API 调用转换为返回 a 的Spring 转换为 Scala immutable 。例如:SimpleJdbcTemplatejava.util.List<T>HashSet


这似乎有效。欢迎批评!

0 投票
2 回答
440 浏览

lift - 使用 Scala 2.7.7 和 LIFT 1.1-SNAPSHOT 的非法继承编译错误

我正在使用 JDK 1.6.0_16 和 Scala 2.7.7,使用 maven 进行编译。

我这样做mvn clean compile了,我得到了四个错误,但它们是相同的,在不同的模型中:

[错误] C:\Users\owner\workspace\ResumeApp\src\main\scala\jblack\resumeapp\lift\ model\ContactInfoModel.scala:13:错误:非法继承;

[INFO] self-type jblack.resumeapp.lift.model.ContactInfoModel 不符合 net.liftweb.mapper.CRUDify[Long,jblack.resumeapp.lift.model.ContactInfoModel] 的 selftype net.liftweb.mapper.CRUDify[ Long,jblack.resumeapp.lift.model.ContactInfoModel] 与 jblack.resumeapp.lift.model.ContactInfoModel 与 net.liftweb.map per.KeyedMetaMapper[Long,jblack.resumeapp.lift.model.ContactInfoModel]

[INFO] 与 CRUDify[Long, ContactInfoModel] {

这是我的代码:

我不确定我做错了什么。

不幸的是,因为我在Eclipse中安装了nightly插件,无法安装IDE 2.7.7,所以只能用maven编译。

我的使用方式有问题CRUDify吗?

0 投票
1 回答
331 浏览

scala - 奇怪的行为:Scala Actors 2.7.7 vs. 2.8-Snapshot

我是一名 18 岁的实习生,我正在发现我非常喜欢的 scala :-)。为了熟悉 scala actor,我编写了一个带有一些齿轮和一个控制器的小型模拟。ActorApplication 以随机速度创建 N 个齿轮。控制器计算同步速度并启动齿轮执行器。齿轮逐步同步到这个给定的速度(1+或1-)。当所有齿轮都达到同步速度时,仿真结束。我在 scala 2.7.7 中开发了模拟 - 它按我的预期工作(见下面的输出)。但是,当我切换到当前的 2.8.0-SNAPSHOT 时,我发现了奇怪的行为。这是代码:

上面的代码在 scala 2.7.7 中生成如下输出:

您可以看到不同参与者(齿轮和控制器)的交替输出。但是,如果我更改为 scala 2.8,我会得到如下输出:

您可以看到交替的演员互动要少得多。我怀疑在齿轮工作时控制器被卡住了。有人可以解释这种行为吗?谢谢菲利普

0 投票
3 回答
4240 浏览

scala - 大地图的不可变地图实现

如果我有一个不可变的地图,我可能希望(在很短的时间内 - 比如几秒钟)从中添加/删除数十万个项目,那么标准HashMap是一个坏主意吗?假设我想在不到 10 秒的时间内通过 Map 传递 1Gb 的数据,使得 Map 在任何时刻的最大大小仅为 256Mb。

我的印象是地图保留了某种“历史”,但我将始终访问最后更新的表(即我不传递地图),因为它是一个私有成员变量,Actor仅更新/访问从内部反应。

基本上我怀疑这个数据结构可能(部分)有问题,因为我在短时间内读入大量数据时看到 JVM 内存不足。

使用不同的地图实现会更好吗?如果是这样,它是什么?

0 投票
1 回答
1035 浏览

generics - Java代码中“?扩展”的Scala类型推断失败

我有以下简单的 Java 代码:

我可以从 Java 中调用它,如下所示:

但是如果我尝试从 Scala 做同样的事情:

我收到以下错误:

错误:发现类型不匹配
:lang.this.class[scala.this.Predef.String]
required: lang.this.class[?0] forSome{ type ?0 <: ? }
val sq = Query.newQuery().refine(classOf[String])

这只能通过插入正确的类型参数来解决!

为什么 scala 不能从我的论点中推断出这一点?注意我使用的是Scala 2.7

0 投票
4 回答
3990 浏览

scala - 使用适用于 Scala 的 IntelliJ IDEA 9.0.1 停留在“Hello World”

我从 2.x 和 IDE 开始使用 Eclipse 已经超过 20 年了(从 80 年代后期的 Turbo Pascal 和 Turbo C 开始!)。

(该序言应该暗示,“我不是白痴”......但听起来不像我读的那么聪明......哈哈:-])

现在我正在尝试在 IntelliJ 9.0.1 中使用 Scala 调试器。我已经让自己接受了一个旧的备用,“hello world”技巧来检查环境是否设置正确:

我也试过这个版本,以防万一:

唉,我什至无法运行这个简单的 Scala 示例。我想最终在其中设置一个断点,但现在只需运行它就可以了。我有 Java 1.6u20 和 Scala 插件 0.3.473(2010 年 1 月)。下面的错误总结了我的经验:

替代文字

我可能做错了什么?

谢谢

0 投票
9 回答
32829 浏览

scala - 如何在 IntelliJ IDEA 中使用 Scala(或者:为什么很难为 Scala 获得一个工作的 IDE)?

我最近放弃了尝试在 Eclipse 中使用 Scala(完成之类的基本内容不起作用)。所以现在我正在尝试 IntelliJ。我不会走得很远。

我已经能够编辑程序(在语法突出显示和完成中......耶!)。但我什至无法运行最简单的“Hello World”。这是最初的错误:

但那是昨天的 IDEA 9.0.1。见下文...

更新

今天我卸载了 IntelliJ 9.0.1,安装了 9.0.2 Early Availability,带有 Scala 插件的 4/14 稳定版。

然后我通过向导从头开始设置一个项目:

  • 从头开始的新项目
  • JDK 是 1.6.u20
  • 接受默认(项目)而不是全局/模块
  • 接受将 Scala 2.8.0beta1 下载到项目的 lib 文件夹中

创建了一个新类:

为了我的努力,我现在有一个全新的错误:)

这里是:

Scalac 内部错误:类 java.lang.ClassNotFoundException [java.net.URLClassLoader$1.run(URLClassLoader.java:202)、java.security.AccessController.doPrivileged(Native Method)、java.net.URLClassLoader.findClass(URLClassLoader.java :190), java.lang.ClassLoader.loadClass(ClassLoader.java:307), sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301), java.lang.ClassLoader.loadClass(ClassLoader.java:248) , java.lang.Class.forName0(Native Method), java.lang.Class.forName(Class.java:169), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main(ScalacRunner.java:72) ]

最后更新

我卸载了 9.0.2 EA 并重新安装了 9.0.1,但这次使用的是 Scala 的 2.7.3 版本而不是默认的 2.7.6,因为 IntelliJ 网站的屏幕截图中显示的是 2.7.3(我猜屏幕截图证明他们确实测试了这个版本!)。现在一切正常!!!

0 投票
1 回答
2029 浏览

initialization - 在 Scala 中初始化一个二维数组

(Scala 2.7.7 :) 我不习惯二维数组。数组是可变的,但我如何指定一个 2d 数组 - 假设大小为 3x4。维度(2D)是固定的,但每个维度的大小应该是可初始化的。我试过这个:

我收到此错误::11:错误:值更新不是 Char 字段 (r) = spl.map (_.charAt (0)) 的成员

如果是 Java,代码会多得多,但我知道该怎么做,所以我说明一下我的意思:

例如, fraese.fld 看起来像这样:

我得到了一些步骤

但是我将如何实现'put'?或者有没有更好的方法来实现二维阵列。是的,我可以使用一维数组,并使用

但我更喜欢看起来更像二维的符号。

0 投票
3 回答
2376 浏览

regex - 如何从Scala中的较大字符串中提取有效电子邮件

我的 Scala 版本 2.7.7

我试图从更大的字符串中提取电子邮件地址。字符串本身没有格式。我得到的代码:

RegEx 在 RegExBuilder 中通过,但在 scala 中没有通过。此外,如果有另一种方法可以在没有正则表达式的情况下执行此操作,那也可以。谢谢!

0 投票
1 回答
680 浏览

scala - scala中的惯用属性更改通知?

我正在尝试找到一种更简洁的替代方案(对于 Scala 来说是惯用的),而不是您在 WPF/silverlight 数据绑定中看到的那种数据绑定 - 即实现 INotifyPropertyChanged。首先,一些背景:

在 .Net WPF 或 silverlight 应用程序中,您有双向数据绑定的概念(即,将 UI 的某些元素的值绑定到 DataContext 的 .net 属性,从而改变 UI 元素影响属性,反之亦然。启用此功能的一种方法是在 DataContext 中实现 INotifyPropertyChanged 接口。不幸的是,这为您添加到“ModelView”类型的任何属性引入了大量样板代码。这是它的外观在斯卡拉:

为了空间的缘故,我们假设 INotifyPropertyChanged 类型是一个特征,它管理类型为 (AnyRef, String) => Unit 的回调列表,并且 OnPropertyChanged 是一个调用所有这些回调的方法,将“this”作为 AnyRef 传递,以及传入的字符串)。这只是 C# 中的一个事件。

您可以立即看到问题所在:这只是两个属性的大量样板代码。我一直想写这样的东西:

我知道如果 ObservableProperty[T] 有 Value/Value_= 方法(这是我现在使用的方法),我可以很容易地写成这样:

但是有没有办法使用 Scala 的隐式或其他一些特性/习语来实现第一个版本,以使 ObservableProperty 实例的功能就像它们是 scala 中的常规“属性”一样,而无需调用 Value 方法?我能想到的唯一另一件事是这样的,它比上述两个版本中的任何一个都更冗长,但仍然比原来的更冗长: