问题标签 [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 投票
3 回答
2312 浏览

scala - scala 有没有办法从任何 Map 转换为 java.util.Map?

我使用了很多 scala 映射,有时我想将它们作为映射传递给需要 java.util.Map 的遗留 java api(而且我不在乎它是否会丢弃任何更改)。

0 投票
6 回答
1459 浏览

compiler-construction - Is Scalas/Haskells parser combinators sufficient?

I'm wondering if Scalas/Haskells parser combinators are sufficient for parsing a programming language. More specifically the language MiniJava. I'm currently reading compiller construction and jflex and java cup is quite painful to work with so I'm wondering if I could/should use parser combinators instead. The MiniJava syntax is very small. MiniJavas BNF: http://www.cambridge.org/us/features/052182060X/grammar.html

0 投票
9 回答
85092 浏览

java - 在 Scala 中迭代 Java 集合

我正在编写一些使用Apache POI API 的 Scala 代码。我想遍历java.util.Iterator从 Sheet 类中获得的行中包含的行。我想在for each样式循环中使用迭代器,所以我一直在尝试将它转换为原生 Scala 集合,但不会成功。

我查看了 Scala 包装器类/特征,但看不到如何正确使用它们。如何在不使用冗长while(hasNext()) getNext()的循环样式的情况下迭代 Scala 中的 Java 集合?

这是我根据正确答案编写的代码:

0 投票
3 回答
2355 浏览

c++ - C++ 是否有类似 scala 的 mixin?

Scala 混合

0 投票
1 回答
826 浏览

java - 用Scala隐式包装的Java接口实现的工厂方法?

我正在使用 Scala 隐式为 Java 接口定义一个丰富的包装器:

在伴生对象中,我定义了隐式转换和apply工厂方法:

有了这个,我可以实例化接口的 Java 实现并像使用它一样RichThing(由于隐式转换):

我还可以RichThing使用工厂方法创建一个(由于apply方法):

我想做的是以相同的方式实例化接口的任意 Java 实现。这不起作用,因为 Scala 然后寻找实现的伴随对象但​​找不到:

我可以为 Java 实现创建一个 Scala 伴随对象:

但关键是要使该接​​口适用于任何(特别是未知的)实现。

有没有办法实现这一点?例如,基于对象中的隐式转换为 Java 实现动态创建 Scala 伴生RichThing对象?

或者从 Java 端创建 Scala 伴生对象,也许在抽象类中?

0 投票
1 回答
2898 浏览

parsing - EBNF 到 Scala 解析器组合器

我有以下要解析的 EBNF:

这就是我得到的:

但我想知道是否有更好的方法,最好不必求助于强制转换(asInstanceOf)。

0 投票
2 回答
2550 浏览

generics - 在 Scala 中创建参数图类型

我想创建一个通用类型层次结构来表示图形。特别是,我想要类 Graph 和 Node,并且我希望每个 Graph 类型都有一个相应的 Node 类型,如果我创建一个用于操作 Graph 的通用函数,我希望这个函数使用实际的 Node类型。我试过的一个例子

但这不起作用,因为当我这样做时

dfs 函数不接受 as 类型的函数ConcreteGraph#Node=>UnitnodeAction而只接受AnyRef=>Unitor GNode[ConcreteGraph]=>Unit

更清楚地说,如果我用 C++ 做,我会做类似的事情

0 投票
6 回答
5984 浏览

scala - Scala远程演员

是否有任何指南或教程可以解释远程使用 scala 演员的可能性?到目前为止,我发现的只是一个例子(没有评论),但这还不够。

0 投票
8 回答
3934 浏览

java - 是否有人在愤怒中使用 Scala(以及对 Java 程序员的什么建议)?

自从开始使用 Smalltalk 以来,我已经成为一名 Java 程序员 10 多年了。我认为下一个主流语言很可能是在无处不在的 Java 虚拟机上运行的语言。我想利用 Scala(以及其他语言)具有的一些特性——case类层次结构、闭包、类型推断的语句,因为它可以让我编写更简洁明了(我希望)的代码。更接近 Smalltalk!

Java 中所有的第二天性:

  • 建筑与ant
  • 将应用程序/库部署到逻辑jars
  • 强大的 IDE 工具支持
  • 编写 GUI(或者通过某种远程处理让 Swing GUI 与它对话?)
  • 3rd 方库/框架
  • 配置(属性XMLSpring
  • 数据库驱动程序等

我担心玩一些宠物项目和实际在工作场所愤怒地使用它之间的区别有点太大了。

  1. 有没有人实现这个飞跃?
  2. 它值得吗?
  3. 你学到了什么?

(显然人们正在使用Scala——但是否有人正在构建实际的企业应用程序,为了更好的说法?)

0 投票
3 回答
2868 浏览

oop - Scala 的模式匹配是否违反了开放/封闭原则?

如果我添加一个新的案例类,这是否意味着我需要搜索所有模式匹配代码并找出需要处理新类的位置?我最近一直在学习这门语言,当我读到一些支持和反对模式匹配的论点时,我一直对应该在哪里使用它感到困惑。请参阅以下内容:

专业版: Odersky1Odersky2

缺点: 比斯特

每种情况下的评论也都很好。那么模式匹配是令人兴奋的东西还是我应该避免使用的东西?实际上,我想答案是“这取决于您何时使用它”,但是它有哪些积极的用例,哪些是消极的用例?