问题标签 [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.
scala - 在 scala 2.10 AST 中搜索
在 scala 2.10 AST 中递归搜索元素的最佳方法是什么?
树可能是power.trees(code)
或mirror.mkToolBox().parseExpr(code)
Edit的结果。在 2.10.0-RC1parseExpr
中已重命名为parse
.
我所拥有的具体用例是通过方法名称从给定的类/对象代码中提取方法的代码,但我认为如果以更通用的方式表述,该问题将与其他问题更相关。
scala - 如何获得 Scala 2.10 反射引用的实际对象?
请考虑以下代码:
我可以Symbol
像这样引用这个对象:
现在,有了这个符号,我怎样才能得到实际的ResponseType
对象?
scala - 使用 Scala 2.10 反射如何列出枚举的值?
有以下枚举
如何获取其 val 列表?
scala - 宏采用类体,消除显式新运算符?
我从不喜欢new
Scala 中的运算符,尤其是 DSL。没有 构建对象的解决方法new
通常非常难看。例如,如果你 import scala.actors.Actor._
,你有actor { ... }
,但在 body 内部你不能访问this: Actor
,所以在那个对象中也有各种各样的伪实例方法,比如receive
、react
、self
等等。
使用 Scala 2.10 宏,我想知道是否有机会获得以下工作?
作为一个额外的挑战,如果doSomething
是会发生什么protected
?
scala - 什么是 TypeTag 以及如何使用它?
我所知道的关于 TypeTags 的只是它们以某种方式取代了 Manifests。Internet 上的信息很少,无法让我很好地了解该主题。
因此,如果有人在 TypeTags 上分享一些有用材料的链接,包括示例和流行用例,我会很高兴。也欢迎详细的回答和解释。
scala - 在 scala 2.10 中是否可以通过一次宏调用生成多个顶级类?
我有一个包含大量样板的程序(遗憾的是,即使是 Scala 机制也无法简化)。但是,如果有一种方法可以使用宏生成复杂的顶级类,那么所有样板文件都会消失。例如:
Scala 2.10 宏可以实现吗?
scala - reify宏扩展期间的StackOverflowError
我有一个使用 reify 的简单测试宏。它会在宏扩展期间导致 StackOverflowError。
为什么会这样?可以以某种方式避免吗?
编辑:这就是 M6 发生的事情。我刚刚用 M7 试了一下,现在它说
实现限制:无法具体化类型 Object{def (): O.type} (ClassInfoType)
所以这回答了为什么的问题,但问题仍然是是否有办法解决这个问题。
scala - 如何在 Scala 2.10 中反映注释?
我试图发现一个特征的值是否有一个与之关联的注释。在查看了 Scala 2.10-M7 反射 API 之后,我认为getAnnotations方法(位于Symbol中)可能是一个很好的选择,但它返回一个空列表,如下面的 REPL 会话所示:
这些“注释”与我要处理的注释相同吗?我怎么知道a是否用W注释?
scala - Scala 2.10 中的 Option.fold
在与 scala 2.10.0-M7 的以下会话中:
我希望编译器找到共同的超类型(即 A)而不是抱怨。它是一般类型推断限制,还是 Option.fold 定义方式的结果?
谢谢你。
scala - Scala 2.10 反射:ClassSymbol.isCaseClass 在 scala 控制台中有效,但在脚本/应用程序中无效
我在 Scala 2.10.0-M7 中玩反射,偶然发现了ClassSymbol.isCaseClass
在 scala 控制台中表现得像预期的方法,但在作为 java 应用程序或 scala 脚本执行时却没有。
我TestScript.scala
是这样定义的:
如果我在命令行调用上执行它
我得到这个输出:
如果我改为将代码输入到交互式 scala shell 中或像这样加载它:
我得到以下正确的输出:
如果我编译它并将其作为标准 Java 应用程序执行,我会再次得到false
结果ClassSymbol.isCase
。
我错过了什么?scala控制台环境和java运行时环境有什么区别?如何在实际应用中获得正确的结果?