问题标签 [scala-2.10]

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

scala - 我应该报告这个断言失败吗?$asInstanceOf 到底是什么?

如果你用这个非常糟糕的代码片段打扰 Scala 编译器(2.9.1 或 2.10.0-M7)......

...它引发断言失败。问题:什么是$asInstanceOf?我应该将此报告为错误吗?

这是堆栈跟踪:

0 投票
1 回答
2353 浏览

scala - 使用 scala 2.10 反射的类型参数的运行时解析

给定类型声明,我能够解析类型参数。

对于运行时值,相同的方法不起作用。

有没有办法克服反射值的类型擦除?

0 投票
1 回答
1025 浏览

scala - 如何引用在 Scala 宏中包含“this”?

以下宏是从一个更大的示例中提取的,它应该创建一个只有对 的引用的树this

但是调用echoThis诸如

编译失败,提示信息

如果我设置-Ymacro-debug-lite标志,生成的树是This(newTermName("<local Testing>")).

0 投票
1 回答
179 浏览

scala - Scala 2.10 反射:为什么我会为列表和列表元素获得相同类型的“List()”?

使用 scala-2.10.0-M7,考虑以下 Scala 程序:

它提供以下输出:

为什么 的 类型 与list的 类型 相同list(0)

我本来期望类似于以下 Java 程序的行为的东西:

这给出了结果:

总结:为什么列表和列表元素的类型都报告为List()

0 投票
1 回答
205 浏览

scala - 如何从 M7 中的类型获取 typeArgs?

我正在将一些代码从 Scala 2.10-M5迁移到 Scala 2.10-M7。我发现宏上下文中的 Type API 已显着减少。特别是,我想知道如何获得底层typeArgs defs。

--

更新

按照@EugeneBurmako 的要求,我将展示整个画面。假设我们有这个状态:

我们有一个实体托管一些属性。实体伴随对象包含有关这些属性的元信息(具体化)。Let系列允许更新实体(通过创建新副本)。

到现在为止还挺好。我们可以使用 Let 方法如下:

reification 属性是多余的,所以我们希望我们的用户有一个更简单的 API。特别是下一个:

请注意,任何地方都没有关于具体化的信息。因此,我们需要一些Helpers和一个宏观视图来实现我们的目标。

事实上,我们的宏定义是一个视图,它神奇地允许 DSL 表达式:

我一直在尝试使用使用两种类型参数的宏,但是这样做时,不应用隐式视图(因为编译器无法推断这两种类型)。

因此,正如我在开头提到的那样, M5 中没有typeArgs,但 M7 中没有,这破坏了之前的宏。如何在没有该定义的情况下生成 AttributeHelper 构造?

最后,我必须说,前面的代码只是一个简化。还有一些其他涉及的证据,这就是为什么我需要使用底层的.

0 投票
1 回答
357 浏览

scala - 如何从 Scala 2.10 中的 ClassFileAnnotArg 中提取信息

我正在尝试使用 Scala 2.10M7 中的新反射 API 来提取构造函数参数的注释。注释是用 Java 编写的,因为我在运行时需要它们,当我尝试在 Scala 中执行它们时,我收到了一条警告,建议我使用 Java。

我已经成功地为每个构造函数参数和注释获得了一个符号......但我最终得到了 ClassFileAnnotArg 类型的东西(下面的代码中的 av)。我不确定如何处理这些。查看源代码/scaladocs 似乎我想拆分一些案例类,但我不知道该怎么做。

我不认为这个问题特定于构造函数 args 上的注释,但我想为它们使用更详细的 scala 反射,不能只使用 Java 注释反射机制。

有什么方法可以获取注释对象的实例(就像您在 Java 注释中所做的那样),或者您是否必须通过 getAnnotations / 检查它是你想要的 / 迭代 assocs / 检查它是你想要的/ 以某种方式将结果与预期类型匹配 / 得到结果?

0 投票
5 回答
41137 浏览

json - Scala 2.10 + Json 序列化和反序列化

Scala 2.10 似乎打破了一些旧的库(至少目前是这样),比如 Jerkson 和 lift-json。

目标可用性如下:

但是我很难找到与 Scala 2.10 一起使用的生成和反序列化 Json 的现有方法。

在 Scala 2.10 中是否有这样做的最佳实践方法?

0 投票
2 回答
3558 浏览

scala - 带有 SBT 的条件 scalacOptions

我正在使用 SBT 为 Scala 2.8、2.9 和(希望)2.10 交叉构建的项目。我想在-feature仅使用 2.10 编译时添加该选项。

换句话说,当我使用小于 2.10.0 的版本进行编译时,我想将编译器选项设置为:

并且在使用大于或等于 2.10.0 的版本进行编译时:

有没有办法做到这一点?

0 投票
1 回答
796 浏览

scala - 宏、拼接和模式匹配

有没有办法在模式匹配中使用宏的参数?我想这样做:

但不幸的是,编译器说“需要稳定的标识符,但找到了 X.splice”。通常,可以通过首先分配一个 val 来解决这个问题,例如:

但当然,这也不适用于拼接。

0 投票
2 回答
787 浏览

scala - 如何使用 Scala 反射确定类型别名?

使用 2.10 中的 Scala 反射,如何确定一个类型是否是类型别名?

以下不起作用: