В Java мы можем сделать switch(value) {case(x): // do something;}
В Scala мы можем сделать что-то подобное с выражениями с учетом регистра:
val a = 1
a match {
case 1 => 1
case 2 => 2
} // 1
Однако он не работает со значением типа reflect.runtime.universe.Type
.
val tpe = typeOf[Int]
tpe match {
case typeOf[Int] => 1
case typeOf[Option[Any]] => 2
}
error: not found: type typeOf
case typeOf[Int] => 1
^
Вместо этого я должен сделать это:
if (tpe =:= typeOf[Int]) {...}
else if (tpe =:= Option[Any]) {...}
Есть ли возможность использовать здесь выражение case match?