问题标签 [scala-2.8]

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 回答
7148 浏览

scala - 使用 Scala 延续实现收益(收益回报)

如何yield return使用 Scala 延续来实现 C#?我希望能够以Iterator相同的风格编写 Scala 。在这篇 Scala 新闻帖子的评论中有一个刺,但它不起作用(尝试使用 Scala 2.8.0 beta)。相关问题中的答案表明这是可能的,但尽管我已经玩了一段时间的定界延续,但我似乎无法完全理解如何做到这一点。

0 投票
3 回答
3720 浏览

scala - 过滤器的Scala集合类型

假设您有一个 List(1,"1"),它的类型是 List[Any],这当然是正确的和预期的。现在,如果我像这样映射列表

结果类型是 List[Int] 也是预期的。我的问题是是否存在与过滤器映射的等效项,因为以下示例将生成 List[Any]。这可能吗?我认为这可以在编译时解决,可能不是运行时?

0 投票
4 回答
13423 浏览

reflection - 对 Scala 案例类的反思

我正在尝试编写一个可以混合到案例类中的特征(在 Scala 2.8 中),允许在运行时检查其字段,以用于特定的调试目的。我想按照它们在源文件中声明的顺序取回它们,并且我想省略案例类中的任何其他字段。例如:

上面的实现显然是有缺陷的,因为它通过这些字段上的值的相等性来猜测字段在 Product 中的位置与其名称之间的关系,因此以下内容将不起作用:

有什么办法可以实现吗?

0 投票
3 回答
1913 浏览

scala - 在 Scala 2.8.x 中管理灵活的、有类型的、不可变的数据结构

现在 Scala 2.8.0 beta 已经解决了这个问题,这是一个后续行动:

在 Scala 中管理灵活、类型化、不可变数据结构的正确方法是什么?

新技术是复制一个案例类,例如

这很好用,除了 Scala 似乎将我限制为案例类中的 22 个(?)属性。这可能看起来很多,在我的情况下还不够。

使用 23,我得到:“错误:Function23 类型不是包 scala 的成员”。我可以定义我自己的 Function23 等,但我不知道它的含义。

所以现在我回到第一方。我需要使用我试图避免的公共变量,或者创建一个 26+ 参数构造函数和一个成对的复制方法。伊克。

22 在这里似乎是一个相当随意的限制。有没有解决的办法?

这是用于数据导入,看起来像这样:

您可以看到我注释掉了未使用的提取以减少字段数量。

也许有更好的方法来做到这一点。我发现这种提取技术有点死板,但这可能是最好的。

0 投票
5 回答
14635 浏览

scala - 将 Scala Set 转换为 Java (java.util.Set)?

我在 Scala 中有一个 Set(我可以在创建 Set 时选择任何实现。我正在使用的 Java 库需要一个 java.util.Set[String]。

以下是在 Scala 中执行此操作的正确方法(使用 scala.collection.jcl.HashSet#underlying):

它似乎正在工作,但由于我对 Scala 很陌生,我想知道这是否是首选方式(我尝试的任何其他方式都会收到类型不匹配错误):

0 投票
2 回答
5608 浏览

scala - scala方法来定义接受不同数字类型列表的函数

我有以下问题:我有一个函数,它以 List[Double] 作为参数,对列表的元素执行一些算术运算,然后返回结果。我希望该函数也接受 List[Int]。这是一个例子:

当然,第二个 println 失败了,因为 f 需要 List[Double] 而不是 List[Int]。

还要注意 f 函数中 sum 的非 scala 样式公式,以证明需要在函数本身中使用 0(或其他常量)(如果我对 Int 值求和,我必须将 s 初始化为 0 而不是 0.0。

哪个是使函数在 Double 和 Int 上工作的最佳方法(更少的代码)?

(我看到了一些关于 2.8 Numeric trait 的东西,但我不太确定如何使用它......)

谢谢大家的帮助。

0 投票
1 回答
3853 浏览

scala - 找不到元素类型 T 的类清单

试图从这个 SO question编译一些代码并遇到这个错误消息cannot find class manifest for element type T。这是另一个显示行为的片段:

我可以看到new collection.mutable.GenericArray[T](2)解决了这个问题。显然提供清单是另一种选择......但是“提供清单意味着”是什么?

0 投票
3 回答
1840 浏览

scala - 作用于 Array[T] 或 List[T] 或 Iterable[T] 函数的函数

我试图为这个 SO question中提供的答案编写一个测试/计时函数。一些答案有效Array[T],一些有效List[T],一个有效Iterable[T],一个有效String

我想写的是一个函数,它shift*从问题或答案、输入列表、谓词和预期输出中获取函数并运行该函数。有点像:

除了我可以弄清楚签名,因为Array似乎具有可变Seq属性,而List似乎具有不可变Seq属性。

处理它的最佳方法是什么?

编辑:使用 Thomas 的建议,这是我能得到的接近程度(适用于Array[Char]List[T]但不适用于Array[T]):

我会将 Daniel 的答案标记为已接受,因为它编译并为我提供了一种不同的方式来实现我想要的 - 除非 Array[T] 上的方法创建一个新数组(并带来 Manifest 问题)。

(2):如何使用函数式方法来移动某些数组元素?

0 投票
3 回答
2766 浏览

generics - Scala:对泛型类类型的约束

我对 Scala 很陌生。

我想实现一个通用矩阵类“class Matrix[T]”。对 T 的唯一约束应该是 T 应该实现一个“+”和一个“*”方法/函数。我该怎么做呢?

例如,我希望能够同时使用 Int、Double 和我自己定义的类型,例如 Complex

我在想一些事情:

一切类型检查,但我仍然无法实例化矩阵。我是否缺少隐式构造函数?我该怎么做呢?还是我对我的方法完全错误?

在此先感谢 Troels

0 投票
2 回答
1574 浏览

scala - Scala:实现 Numeric[T] 的子类型

如何实现 Numeric[T] 的子类型?我一直在寻找这方面的指南,但没有找到。子类型的示例可以是 Rational 还是 Complex?

在此先感谢 Troels