【问题标题】:How to disable Scala assertions in Eclipse?如何在 Eclipse 中禁用 Scala 断言?
【发布时间】:2012-09-08 09:27:01
【问题描述】:

我想在 Scala 程序中使用断言。为提高性能,程序的最终版本应关闭断言。

似乎有两个 Scala 编译器标志启用此功能(第一个需要额外的优先级):

-Xelide-below
-Xdisable-assertions

但是,在 Eclipse 中激活我的 Scala 项目的 Scala 编译器属性 中的那些没有效果:断言仍在执行。

我用来测试的小程序:

object Test {
  def main(args: Array[String]): Unit = {
    assert(false) 
  }
}

我确保重新编译了代码;我为 -Xelide-below 测试了不同的(非常高的)优先级。

我在 Windows 7 机器上使用 Eclipse Juno (4.2.0) 和 Scala 插件 2.1.0.nightly-2_09-201209040315-cc63a95 和 Scala 2.9.1-1。

【问题讨论】:

    标签: eclipse scala assert scala-ide


    【解决方案1】:

    要禁用断言,您应该使用Scala Compiler > Advanced > Xdisable-assertions

    另一种禁用它们的方法是将选项-Xdisable-assertions 传递给Scala Compiler > Additional command line parameters

    【讨论】:

    • 谢谢,它有效!我只在项目设置中尝试了完全相同的东西,但没有效果。如果我按照建议在全局设置中更改它,它会起作用。很有趣,也许是一个错误?
    • @fbeck:是的,这似乎是一个错误。我举报了here
    • 用JVM参数能达到Java一样的效果吗?
    • @pedrofurla:不是,不是 JVM 参数。 Scala 断言在编译时而不是在运行时被删除(作为 Java 断言)。
    • 我知道@elidable,但出于某种原因,我认为至少有一些断言会被编译成与Java 相同的字节码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2012-12-12
    • 2011-07-27
    • 1970-01-01
    • 2016-11-05
    相关资源
    最近更新 更多