问题标签 [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.
scala - 如何使用完全限定名称导入类?
test1.scala
使用以下代码创建文件:
test2.scala
使用以下代码创建另一个文件:
现在编译为scalac test1.scala test2.scala
:
我们得到错误:
我认为错误是因为 Scala 认为java
上面指的是 package test.java
。除了重命名包外,如何解决这个问题?
scala - 将 Scala 2.9.2 中的 ListView 与 Java 7 一起使用会产生编译错误
我正在开发一个使用 scala 2.9.2 和 java 7 的项目。
我想要做的是使用 scala ListView 创建一个 GUI。
这是一个小代码片段:
这给了我以下编译错误:
我猜这是因为在 ListView 中,peer 是在没有类型参数的情况下定义的:
所以问题是:不可能将 scala-swing 中的 ListView 与 Java 7 一起使用吗?
scala - 带有类型演员的 Akka 可靠代理?
我刚刚阅读了有关akka 中可靠代理的信息,但我找不到将它们与类型化演员一起使用的方法。实现这一目标的最佳方法是什么?
class - “Array.fill(2)(new A)”和“val a=new A; Array.fill(2)(a)”有什么区别?
最小工作示例(Scala 2.9.2):
一个相关的问题是“与导入的 Java 类一样吗?” 如果我需要用作为参数传递的实例的副本填充函数内部的数组,我该如何解决?[关于相同的副本,我值得去看看易克隆库。
只需根据答案将解决方法添加到函数调用中:
另一种方法是声明一个函数,而不是一个值def a = new A
:
scala - 匹配集合中的多个元素
定义:
我想查找是否x
包含1
or 3
。一种方法是
另一个是
另一个是:
我会更喜欢类似的东西
请注意,x.containsSlice
在这种情况下不起作用。
有更好的解决方案吗?
scala - 带有泛型参数的 Scala 方法调用似乎不是多态的 - 出了什么问题
无法弄清楚为什么这是错误的或如何解决它。这是重现问题的“蒸馏”代码。请帮忙,但我不会欣赏任何“为什么”问题 - 有非常真实和有效的答案,但它们是专有且不可更改的,因此与解决方案无关。
编译器似乎无法仅基于指定的单个参数来推断“麻烦”方法的 X、Y 和 Z 类型参数。我明白这一点 - 当我指定类型时,没关系,但它很麻烦。有没有办法以某种方式轻推/帮助编译器,以使这不再是一个问题?
也许我对 Scala 的类型推断系统过于自信,但它可以使用所有信息。
提前致谢!
scala - Scala Futures - 被两种方法的 CPU 负载和输出混淆
我在实现 scala 期货时犯了一个错误,或者至少我认为我做到了,并且只是注意到它,当我修复错误时,它的运行速度比我不使用期货时慢得多。有人可以帮助我了解发生了什么吗?
我有一个慢速方法,需要运行 5,000 次。每个都是独立的并返回一个 Double。然后我需要计算 5,000 个返回值的平均值和标准差。
当我最初编码时,我是这样做的:
我没有想到它,因为它运行得很快,我得到了我预期的结果。当我仔细查看它以尝试让它运行得更快(它没有使用我所有可用的 CPU 资源)时,我意识到我的循环计数器在错误的位置,并且foreach
在future
创建循环中并且因此,提前阻止了期货。或者我是这么想的。
我坚持了几个 println 语句,看看我是否能弄清楚发生了什么,并对发生的事情感到非常困惑......结果列表的长度与最终列表长度不匹配,也不匹配循环计数器!
我根据我认为(应该)发生的事情将我的代码修改为以下内容,并且事情变得慢得多,并且打印语句的输出与第一种方法相比没有任何意义。这次循环计数器似乎跳到了 1000,尽管最终列表长度是有意义的。
第二种方法确实使用了所有可用的 CPU 资源,这更符合我的预期,但我确信结果相同需要更长的时间。
我在这里遗漏了一些明显的东西吗?
编辑
对于任何看到这个的人......问题是我正在将期货的结果重新添加到期货循环中的最终列表(expectedResult)中 - 正如 som-snytt 所指出的那样。
因此,在每个循环中,我都会反复迭代已完成的期货并获得:
最终列表中的模式是这样的:
由于列表有 5050 项长和 Double 值,当我只查看列表的开头时,很难看到模式。
最终,循环的数量实际上只有 100 个,而不是我需要的 5000 个。
该方法的第二版对于 scala 2.9 是正确的。
scala - 在scala中减去两个数组的最快方法是什么
我有两个数组(我已经从矩阵中提取出来(Array[Array[Int]]),我需要从另一个中减去一个。
目前我正在使用这种方法,但是,当我分析它时,它是瓶颈。
我需要这样做数十亿次,所以速度的任何改进都是一个加分项。
我曾尝试使用 aList
而不是 anArray
来收集差异,它要快得多,但是当我将它转换回Array
.
我确实修改了下游代码以List
查看是否有帮助,但我需要无序访问列表的内容,因此再次失去任何收益。
似乎将一种类型转换为另一种类型都很昂贵,我想知道是否有某种方法可以更快地使用地图等。
有没有更好的办法?
编辑
不知道我第一次做了什么!?
所以我用来测试它的代码是这样的:
我认为我第一次这样做时得到的结果完全相反......我一定是误读或混淆了方法。
我很抱歉问了一个不好的问题。
scala - 有没有办法在 for 理解中声明一个隐式 val?
我有一些嵌套调用 flatMap 的代码,如下所示:
通常,人们会将其写为 for 理解,这使代码更具可读性:
但我需要f
隐含,我看不出用理解来做到这一点。有没有?当然我可以明确地传递 f,但这意味着再见漂亮的 DSL。我会对 Scala 2.9 和 2.10 的答案感兴趣。
为了清楚起见,我想做这样的事情,但它不会编译:
编辑:也许功能请求是个好主意?
EDIT2:这应该适用于可用于理解的所有类型,因此不仅适用于通常的集合类型,如List
or Seq
,而且适用于Future
.
scala - 如何最好地解决 sbt 中的“可能不兼容的依赖版本”
我的项目给出以下警告:
我有以下依赖项:
我试图弄清楚我们如何摆脱 org.scala-lang 2.9.1 依赖,但这并不像我想象的那么容易。我错过了什么技巧?