我可以使用 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 的enum
s 不同于 Scala 的Enumeration
. 仍然没有运气。
它@switch
模式匹配仅适用于原始类型?