Это должно быть что-то глупое, но мне интересно, может ли кто-нибудь помочь мне здесь. Следующее соответствие шаблону регулярного выражения в совпадении класса case не работает, как я ожидал. Может ли кто-нибудь дать представление? Благодарю.Шаблон шаблона регулярного выражения с использованием Scala
object Confused {
case class MyCaseClass(s: String)
val WS = """\s*""".r
def matcher(myCaseClass: MyCaseClass) = myCaseClass match {
case MyCaseClass(WS(_)) => println("Found WS")
case MyCaseClass(s) => println(s"Found >>$s<<")
}
def main(args: Array[String]): Unit = {
val ws = " "
matcher(MyCaseClass(ws))
}
}
Я ожидаю, что первый случай в матче с шаблоном будет соответствовать тому, который соответствует, но это не так.
Печатается
Найдено >> < <
Хотя этот код может ответить на вопрос, обеспечивая дополнительный контекст относительно того, почему и/или, как этот код отвечает на вопрос улучшает долгосрочную ценность. – NathanOliver
@NathanOliver, Спасибо, я добавил подробности для объяснения. – chengpohi
Спасибо! Я был прав. Это было ** что-то глупое. –