问题标签 [scalac]

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

scala - 干扰Scala动态特征的方法解析的字段?

作为我第一次涉足 Dynamic Sc​​ala 领域,我想我会尝试通过 applyDynamic 访问 bean 属性。

我的第一个非常粗略的剪辑是

以便

到目前为止,一切都很好!但是当我尝试

编译器抱怨,而是尝试授予对名为 background 的字段的访问权限,而不是合成一个方法。

这是设计使然,疏忽还是计划修复的事情?

0 投票
1 回答
1130 浏览

java - 如何运行 Fast Scala Compiler 远程服务器?

我想设置一个在盒子上运行的 fsc 进程,然后我可以远程访问它。

我知道我需要共享一个临时目录。

但是,我什至很难让它在我的笔记本电脑上运行。

我正在努力:

但它只是给了我使用选项......

帮助?

0 投票
3 回答
1618 浏览

scala - Scala Range contains(elem: Any) 方法

显然Range有一个方法可以检查它是否包含任何类型的值。我知道它来自SeqLike,但会导致一些问题。

例如,我匹配 joda.DateTime 的小时数:

这里 d.hourOfDay() 返回 DateTime.Property,而不是 Int,但代码仍然可以编译,因为contains(elem: Any). 有没有办法在编译时检查此类调用?

0 投票
1 回答
459 浏览

scala - 带有 Emma / Ant 的行级 Scala 覆盖率报告

我需要使用任何技巧来使用 Emma 使用 Scala 代码来获取行级覆盖率报告吗?我可以让它与 Java 代码一起正常工作,但由于某种原因,当我使用 scalac 时,调试信息没有进入类文件。

任何帮助,将不胜感激。

0 投票
3 回答
368 浏览

scala - scalac代码中的Shebangs

scala 解释器允许 shebangs,但奇怪的是,scalac borks 在他们身上。有没有像这样的技巧来解决这个缺陷?

0 投票
1 回答
850 浏览

scala - 在 Scala 中使用类型类模式对性能有何影响

我目前正在广泛使用类型类模式作为我的代码中与性能相关的部分。我至少找出了两个潜在的低效率来源。

  1. 隐式参数随消息调用一起传递。我不知道这是否真的发生。也许 scalac 可以简单地在使用它们的地方插入隐式参数并将它们从方法签名中删除。在您手动插入隐式参数的情况下,这可能是不可能的,因为它们可能仅在运行时被解析。关于传递隐式参数有哪些优化

  2. 如果类型类实例由 a 提供def(与 a 相反val),则必须在每次调用“类型分类方法”时重新创建对象。JVM 可能会解决这个问题,这可能会优化对象创建。scalac 也可以通过重用这些对象来解决这个问题。哪些优化适用于隐式参数对象的创建?

当然,在应用类型类模式时,可能还有其他低效率的来源。请告诉我他们的情况。

0 投票
3 回答
773 浏览

scala - 编译 Scala 脚本。Scala 脚本如何工作?

时髦的

Groovy 带有一个名为groovyc. 对于每个脚本,groovyc生成一个扩展类groovy.lang.Script,其中包含一个 main 方法,以便 Java 可以执行它。已编译类的名称与正在编译的脚本的名称相匹配。

例如,使用此HelloWorld.groovy脚本:

这变成了这样的代码:

斯卡拉

Scala 带有一个名为scalac.

例如,使用相同的HelloWorld.scala脚本:

该代码对 无效scalac,因为编译器需要类或对象定义,但可以在 Scala REPL 解释器中使用。怎么可能?它在执行之前是否包含在一个类中?

0 投票
1 回答
425 浏览

scala - 为什么 Scala 的编译器使用“-print”选项显示 Scala 的特定功能?

Scala 编译器(2.9.2)的帮助菜单说

但是以下带有该-print选项的调用显示了 Scala 特定的功能:

为什么特征仍然显示?我本来期望纯 Java 代码。

0 投票
1 回答
526 浏览

scala - 在 Scala 编译器插件中加载本机库

我正在开发一个 scala 编译器插件。编译器插件在“refcheck”阶段之后运行。它分析 AST(抽象语法树)并生成一些输出。在这个插件中,我正在加载一个本机库“scalaz3.dll”,使用System.loadLibrary

我计划将编译器插件与 Eclipse Scala IDE 一起使用。我-XPlugin在 ScalaIde 首选项中设置了参数。当我在 Eclipse 中编译 scala 源文件时,该插件在该refchecks阶段之后被调用并且工作正常(生成所需的输出)

但是,当我对源文件进行更改并编译时,出现以下错误。

看起来 ScalaIDE 生成了另一个类加载器并尝试在同一进程中加载​​插件类。

我在编译器插件测试用例中遇到了同样的问题。但是,我fork in Test := truebuild.sbt. 但我对如何在 eclipse scala IDE 中修复它一无所知。

以下是一些相关的帖子(尽管与 eclipse scala ide 无关):

0 投票
2 回答
467 浏览

java - Scala 如何处理 Java 风格的包语句

这听起来很尴尬。我的目的是了解 Scala 如何处理以 Java 风格编写的包语句。为此,我编写了一个小示例类(我将其命名为 DinnerTimeP.scala,如下所示:

我有一个名为 scaladev 的文件夹,我在该文件夹下创建了包文件夹 Dinnertime。在这个包下生活着 DinnerTimeP.scala。然后在 DOS 命令上导航到晚餐时间并使用 scalac 编译文件 DinnerTimeP(名称听起来很傻),如下所示。

我希望找到在 DinnerTime 文件夹下生成的 Dinner.class,并且位于源文件 DinnerTimeP.scala 旁边。为了确认我的理解,我在同一个文件夹下创建了一个 HelloWorld.java 程序:

}

我在命令行编译HelloWorld.java如下:C:\scala-2.9.1.final\scala-2.9.1.final\scaladev\dinnertime>javac HelloWorld.java

HelloWorld.class 文件是在其源文件旁边生成的。这正是我想在 Scala 源文件及其编译文件中看到的确切情况。相反,我在包文件夹 Dinnertime 中看到了一个由 Scala 生成的新包文件夹。

这可能是幼稚的。我可能背叛了对 Scala 和包的基本理解,但我对这种行为感到困惑。这是我无法向自己解释的问题:为什么要为新生成的类文件创建嵌套包。这是我希望通过自己的真诚努力解决的问题因为我目前对 Scala 的经验有限,所以我求助于 stackoverflow 上的 Scala 大师来帮助我了解发生了什么为什么?这个嵌套包是否有理由由 Scala 而不是由 Java 创建?