Класс scala.annotation.switch
final class switch extends StaticAnnotation
Аннотация, применяемая к выражению сопоставления с образцом. При её наличии компилятор проверит, что сопоставление с образцом скомпилировано в tableswitch или lookupswitch, и выдаст предупреждение, если вместо этого оно скомпилировано в ряд условных выражений. Пример использования:
val Constant = 'Q'
def tokenMe(ch: Char) = (ch: @switch) match {
case ' ' | '\t' | '\n' => 1
case 'A' | 'Z' | '$' => 2
case '5' | Constant => 3 // a non-literal may prevent switch generation: this would not compile
case _ => 4
}
Примечание: для сопоставлений с образцом, содержащих один или два случая, компилятор генерирует инструкции перехода. Аннотация такого сопоставления с @switch не приводит к выдаче предупреждения.
| Супертипы |
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/annotation/switch.html