1
裏面我寫了這個代碼使用正則表達式枚舉模式匹配
object Foo extends Enumeration {
val X = Value("X")
val Y = Value("Y")
}
val regex = """([A-Z]+)(\d+)""".r
val input = "ABC123"
input match {
case regex(x, num) if x == Foo.X.toString => // do something
case regex(x, num) if x == Foo.Y.toString => // do something
case _ => // throw error
}
這工作,但有點太冗長。我試圖將其更改爲
input match {
case regex(`Foo.X.toString`, num) => // do something
case regex(`Foo.Y.toString`, num) => // do something
case _ => // throw error
}
但是這不能編譯。這些```爲`vals'工作,但不適用於枚舉。