是否有一种简洁的方法来检查表达式是否与给定的模式匹配?例如,考虑以下代码:
val result = expr match {
SomePattern(_, 1, _) => true
_ => false
}
虽然此代码有效,但它相当嘈杂且冗长。我想知道是否有更好的方法来实现同样的目标。如果 Scala 有一个构造,那就太好了matches
,它允许人们编写
val result = expr matches SomePattern(_, 1, _)
我什至会考虑编写一个辅助函数来使这些方面成为可能。但是,这似乎很难做到,因为据我所知,我无法将模式作为参数传递。对于 Scala 2.10 中可用的宏(作为实验性功能),也许这样的事情是可能的?