我发现自己经常写这样的东西:
a match {
case `b` => // do stuff
case _ => // do nothing
}
有没有更短的方法来检查某个值是否与模式匹配?我的意思是,在这种情况下我可以写if (a == b) // do stuff
,但是如果模式更复杂怎么办?就像匹配列表或任意复杂的任何模式时一样。我希望能够写出这样的东西:
if (a matches b) // do stuff
我对 Scala 比较陌生,所以如果我遗漏了一些重要的东西,请原谅:)
这正是我编写这些函数的原因,这些函数显然非常晦涩难懂,因为没有人提到过它们。
scala> import PartialFunction._
import PartialFunction._
scala> cond("abc") { case "def" => true }
res0: Boolean = false
scala> condOpt("abc") { case x if x.length == 3 => x + x }
res1: Option[java.lang.String] = Some(abcabc)
scala> condOpt("abc") { case x if x.length == 4 => x + x }
res2: Option[java.lang.String] = None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)