私はこのようなことをしたい:
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
}