问题标签 [scala-2.11]

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 投票
1 回答
2144 浏览

scala - 是否有 Scala 2.11 的 nsc 编译器 API 的概述?

scala.tools.nscAPI 已从 2.10 完全更改为 2.11 。例如,没有Interpreter了。

我正在尝试在 Scala 中构建类似于http://codingbat.com的站点,因此我需要能够在程序运行时编译和运行用户提供的代码。

有谁知道解释如何在任何地方使用新 API 的东西?(我没有运气在谷歌上搜索我认为合理的搜索词。)如果不是,那么了解新 API 的人能否提供一个小的工作示例,让您编译代码然后检索运行结果?

更新2.11.0-M5 似乎破坏了对脚本引擎的支持,但我回到了 2.11.0-M4 并且可以ScriptEngineManager用来获取解释器。奇怪的是,类型是scala.tools.nsc.interpreter.IMain. 该包和类没有出现在 2.11.0-M4 Scaladocs 中,所以我想知道它们是否已经从其他地方的编译器工件中移出,或者是否只是 Scaladoc 生产中的疏忽,它们应该仍然存在.

0 投票
2 回答
933 浏览

scala - 要覆盖哪些 Scala Map 方法

我想创建一个扩展的Counter[A]数据结构(受 Python 的Counter启发),它只Map[A, Int]记录 type 项的出现次数A。我希望它有 2 个额外的方法add(item: A),以及remove(item: A)与之关联的递增/递减计数器,item当然我还想要所有不错的 Scala 集合方法mapfilter等等,所以我可能应该扩展Map[A, Int]。但是,对于我应该覆盖/实现Map其他 Scala 集合方法以使其简单工作的最小方法集,我感到困惑。

0 投票
2 回答
4792 浏览

scala - 如何使用嵌套元组或 HList 处理具有 Slick 的 > 22 列表?

我是 Scala(使用 2.10)和 Slick(使用 2.0-M2)的新手。我看到解决 Slick 中表的 22 列限制的方法之一是使用嵌套元组。尽管在 GitHub 上找到了此部分代码,但我不知道该怎么做。

当前的开发分支 Scala (2.11-M5) 支持具有超过 22 个元素的案例类,但不支持 arity > 22 的元组。并且 Slick 尚未针对 Scala 2.11 预发行版分发。如何定义一个 33 列的表(并让它与所有 Slick 的语法糖一起使用)?

注意,我正在尝试支持现有架构并且无法更改表规范化。

0 投票
1 回答
293 浏览

scala - 双文字可以以点结尾吗?

我正在从 Scala 2.9 迁移到 Scala 2.11.0-M5。

使用常量浮点文字进行双字段初始化失败。

代码示例:

Scala 解释器错误:

这里的问题是 badDouble 定义末尾的点。

现在应该总是将 0.0 用于双文字吗?

0 投票
1 回答
70 浏览

reflection - 构造或修改 scala.reflect.api.Position

我有一个宏,我可以得到pos一个文字字符串。我希望我的错误在给定计算偏移量的情况下突出显示该字符串的子集。如何在旧职位的基础上构建新的子职位?

谢谢!

0 投票
1 回答
647 浏览

scala - Scala 2.11 中的宏 API 发生了什么变化?

我正在尝试将宏从 Scala 2.10 移植到 2.11.0-M7:

一定有什么改变了,因为编译器说不scala.reflect.macros.Context存在。

我的构建文件如下所示:

有什么线索吗?

0 投票
2 回答
736 浏览

scala - 从 scala 宏的上下文中获取资源路径文件

我想做一个宏,在编译时验证其他项目中资源的存在。是否可以从上下文中获取此信息?

这可能是不可能的。但如果是的话,我想知道该怎么做。

0 投票
1 回答
85 浏览

scala - this.type 编译不正确?

在将我的项目从 Scala 2.10移植到 2.11 时,我遇到了类型参数化的突然编译错误。我试图修改和精确定位;还是有什么奇怪的地方出错了。有人可以解释一下吗?顺便说一句,我对这种回归(或进展)很满意,因为它促使我​​简化代码。

0 投票
0 回答
905 浏览

scriptengine - 将脚本结果传递给 Scala 2.11 ScriptEngine 中的主程序

在 2.11 Milestone 7 中使用 Scala 脚本引擎,我如何从脚本引擎中获取类型化的值?我收到诸如“mypackage.Holler 无法转换为 mypackage.Holler”之类的错误消息。

这是用例(简化为基本内容)。我想使用脚本来准备和配置我将在主程序中处理的标准类型的对象。我有一个特点:

我在 Scala 中有一个用户脚本,保存在 /home/me/Foo.scala 文件中

当我使用 IMain.eval(Reader) 运行此脚本时,我希望对象 Foo 将被返回,因为它是最后一条语句的结果。这是一个程序,包括几个有用的打印输出来运行脚本:

该脚本在脚本引擎下运行得很好。但结果不能投给霍勒。该程序的输出如下:

这告诉我脚本引擎成功识别了类路径,并且正在构造 Foo 对象。但是脚本中的特征 mypackage.Holler(来自公共类路径)与主程序中的特征 mypackage.Holler 不同。

如果我将以下行添加到脚本中:

我懂了:

  • 正在执行的喊叫方法(“Hello World!”打印出来),
  • “结果”被添加到定义的符号列表中
  • 结果显然与 Holler 类型兼容。

我可以将“捕手”对象绑定到脚本引擎。它的代码如下所示:

我与

现在“捕手”出现在脚本引擎的已定义符号列表中,我可以使用捕手通过如下命令进入脚本引擎

但后来我得到奇怪的“编译时间”ClassCastExceptions 说:

如果我将 Catcher 中的“项目”设为 Any,那么在我这样做之前我不会得到异常

在主程序中。但我仍然得到几乎相同的例外。就好像两个不兼容的类加载器正在同一个类路径中使用。那么,如何从主程序访问 Foo 对象作为 Holler 的实例(它在脚本引擎中明确实现)?

0 投票
1 回答
1184 浏览

scala - 确保Scala中的notnull类?

由于 NotNull 特征已被弃用,那么声明我的类不可为空的最佳新方法是什么?

仍然有编译器选项(不防止有人在其他项目中滥用我的库)。以及一些我怀疑 Scala 编译器会尊重的相互冲突的 Java 注释。