用法:
final class switch extends StaticAnnotation
要应用于匹配表达式的注释。如果存在,编译器将验证匹配是否已编译为 tableswitch or 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
注释这样的匹配不会发出任何警告。
源码:
- switch.scala
相关用法
- Scala annotation.showAsInfix用法及代码示例
- Scala annotation.ConstantAnnotation用法及代码示例
- Scala annotation.implicitNotFound用法及代码示例
- Scala annotation.nowarn用法及代码示例
- Scala annotation.implicitAmbiguous用法及代码示例
- Scala annotation.elidable用法及代码示例
- Scala any.!=用法及代码示例
- Scala any.ToString用法及代码示例
- Scala any.==用法及代码示例
- Scala any.IsConst用法及代码示例
- Scala aggregate()用法及代码示例
- Scala Tabulate.sliding用法及代码示例
- Scala ArrayBuffer.inits用法及代码示例
- Scala long.BitwiseOr用法及代码示例
- Scala StringBuilder.partitionMap用法及代码示例
- Scala List distinct()用法及代码示例
- Scala DefaultMap.sizeIs用法及代码示例
- Scala StrictOptimizedIterableOps.sliding用法及代码示例
- Scala Searching.SearchResult用法及代码示例
- Scala ::.collectFirst用法及代码示例
- Scala TreeSet diff()用法及代码示例
- Scala Char getClass()用法及代码示例
- Scala int.Min用法及代码示例
- Scala IntMap.groupMap用法及代码示例
- Scala Map3.mkString用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 annotation.switch。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。