我正在尝试处理一个元组,其中一种情况是两个值相等。有没有更好、更简洁的方式来 match
在这比
(p, q) match {
case (p, q) if (p == q) => println("Match!")
...
}
?
最佳答案
就我个人而言,我认为您的做法很棒,因为它简单、直观,而且读者一目了然。
也就是说,这是一种无需 if
即可完成的方法条款。您可以只匹配交换版本,使用反引号转 q
成稳定的标识符。正如@Luigi 指出的那样,您只需检查 p
匹配 q
:
(p, q) match {
case (`q`, _) => println("Match!")
...
}
像这样:
def f(p: Int, q: Int) {
(p, q) match {
case (`q`, _) => println("Match!")
case _ => println("No")
}
}
f(1, 2) // "No"
f(1, 1) // "Match!"
关于scala - 匹配一对相等的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12665042/