Spec-Zone.ru › Scala 3.1

Класс 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 не приводит к выдаче предупреждения.

Супертипы
Трейт StaticAnnotation
Класс Annotation
Класс Object
Трейт Matchable
Класс Any

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API