Match "fallthrough": executing same piece of code for more than one case?

scala

Solution

According to this conversation there is no fallthrough, but you can make use of `|`.

This should do the trick:

i match {
  case 1  => a    
  case 2 | 15 => b
                 c
  case _ => foo        
} 

Problem

What is the Scala's way to write the following code: ``` int i; switch(i) { case 1: a(); break; case 2: case 15: b(); c(); break; default: foo() } ``` I.e. what is the idiomatic way of executing the same piece of code based on multiple case values? ``` i match { case 1 => a case 2 => case 15 => { b c } case _ => foo } ``` Doesn't quite seem do the trick, since Scala evaluates the match value based on the first matching case, i.e. if i=2 the code will return nothing. Thanks for help!

Original source