【发布时间】:2015-03-02 13:43:41
【问题描述】:
我可以使用 switch-case 对枚举进行模式匹配吗?
我试过了
import scala.annotation.switch
object Foo extends Enumeration {
val First = Value
val Second = Value
val Third = Value
}
object Main {
def foo(x: Foo.Value) = (x: @switch) match {
case Foo.First => 1
case Foo.Second => 2
case Foo.Third => 3
}
}
但收到以下警告(Scala 2.11.4):
warning: could not emit switch for @switch annotated match
def foo(x: Foo.Value) = (x: @switch) match {
然后我尝试在 Java 中定义枚举,因为 Java 的 enums 与 Scala 的 Enumeration 不同。还是没有运气。
@switch 模式匹配仅适用于原始类型?
【问题讨论】:
标签: scala enums switch-statement pattern-matching scala-2.11