我有一个我要表达的声明,在C伪代码中看起来像这样:
switch(foo):
case(1)
if(x > y) {
if (z == true)
doSomething()
}
else {
doSomethingElse()
}
return doSomethingElseEntirely()
case(2)
essentially more of the same
使用scala模式匹配语法是否可行?
答案 0 :(得分:44)
如果您想在单个match
语句中处理多个条件,您还可以使用 guards ,它允许您为案例指定其他条件:
foo match {
case 1 if x > y && z => doSomething()
case 1 if x > y => doSomethingElse()
case 1 => doSomethingElseEntirely()
case 2 => ...
}