【问题标题】:Optimize Scala pattern matching for Java enumeration with @switch使用 @switch 优化 Java 枚举的 Scala 模式匹配
【发布时间】:2012-11-19 16:28:14
【问题描述】:

我有以下问题: 我们有一个共享的 scala-java-project(成员只写 java 代码),因此我们将 java 枚举用于一个目的。 但是现在我想在scala中对这个枚举进行模式匹配,并用@switch对其进行优化,因为java switch实际上可以使用枚举。

但编译器只会抱怨:

error: could not emit switch for @switch annotated match
(args.tileType: @switch) match {

其中 tiletype 是包含枚举值之一的字段。 如何解决代码可以优化的问题?

【问题讨论】:

    标签: scala enums pattern-matching


    【解决方案1】:

    你使用 Java。

    Scala 仅包含能够读取 Java 枚举所需的最低限度的内容。您目前无法在 Scala 中创建或优化使用它们(直到 2.10)。

    【讨论】:

    • 好吧,如果这是事实,如果性能真的很关键,我会使用Java
    • 您可以创建一个从枚举到函数的哈希映射,并在列表长得离谱时以这种方式进行切换。 (假设你可以安排好,就不用每次都建图了。)
    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 2015-02-28
    • 2011-04-08
    • 1970-01-01
    相关资源
    最近更新 更多