Я пытаюсь сопоставить значение enum, преобразованное в строку, содержащуюся в коллекции. Вот код:Какой самый идиоматический путь в Scala для соответствия шаблону на значениях перечисления Seq, преобразованных в строки?
object Foo extends Enumeration {
val ONE = Value("ONE")
val TWO = Value("TWO")
}
def check(seq: Seq[String]): Unit = seq match {
case Seq(Foo.ONE.toString) => println("match")
case _ => println("no match")
}
Это приводит к ошибке компиляции:
error: stable identifier required, but Foo.ONE.toString found.
case Seq(Foo.ONE.toString) => println("match")
Что такое правильный способ использовать мои Foo перечисленных значения в качестве элементов согласующего моего образца заявления случае?
Вы не можете применить какую-либо функцию внутри шаблона (там '.toString'). – cchantep
Вы хотите узнать, являются ли _all_ элементами 'Seq()' значениями строки 'Foo' или просто _any_ из них? Вам нужно сообщить, какие элементы соответствуют, или это просто логический (то есть совпадение найдено/не найдено)? – jwvh
@cchantep прибил его на голову, я должен был сопоставлять «case Seq (Foo.ONE)». Благодарность за вклад каждого! – nmurthy