我想做这样的事情:
val a = v match {
case 1 => 1
case 2 if (condition) => logging
case 2 if (other conditions) => 3
case 2 if (more conditions) => 4
case _ => 5
}
我希望这仅返回第一种情况 2 的日志,否则会失败以查看返回的内容
编辑:更新
我想做这样的事情:
val a = v match {
case 1 => 1
case 2 if (condition) => logging
case 2 if (other conditions) => 3
case 2 if (more conditions) => 4
case _ => 5
}
我希望这仅返回第一种情况 2 的日志,否则会失败以查看返回的内容
编辑:更新
Scala 的大小写匹配不会“失败”,但如果我理解正确,这将满足您的需求。
val a = v match {
case 1 => 1
case 2 => {
logging // I'm assuming `logging` is some Unit
if(some condition) 3
else if(some other condition) 4
else 5
}
case _ => 5
}
像这样的东西?
如果v == 2
,a
将被赋值,logging
否则a
将被赋值v
val a = v match {
case 2 => logging
case _ => v
}