чего я хочу добиться здесь, это сначала сравнить string
со значением enum
, я попробовал, используя, по крайней мере, если
object FooType extends Enumeration {
type FooType = Value
val FooA = Value("FA")
val FooB = Value("FB")
}
val x = "FA"
if (x == FooType.FooA) //Does not match
println("success using if without toString")
if (x == FooType.FooA.toString) //match
println("success using if with toString")
println(FooType.FooA) //will print into "FA"
, он все еще работает хорошо, когда я сравните это с enum
с toString
методом. но если я поменяю его на match case
, он превратится в error
вместо
x match {
case FooType.FooA.toString => println("success using match")
}
ScalaFiddle.scala:19: error: stable identifier required, but ScalaFiddle.this.FooType.FooA.toString found.
case FooType.FooA.toString => println("success using match")
^
, есть ли способ добиться этого с помощью регистра соответствия?