我是新手groovy程序员,我遇到了使用静态编译(@CompileStaticannotation)的switch-case-break语句的奇怪行为.似乎忽略了休息.
这是一个错误还是我在阅读文档时遗漏了一些东西.
这是一个错误还是我在阅读文档时遗漏了一些东西.
环境:
- groovy sdk 2.1.0 - Oracle JDK build 1.7.0_13-b20 on Mac OS X Lion 10.7.5
测试用例:
import groovy.transform.CompileStatic @CompileStatic class Test { def test() { ['A','B','C'].each { String val -> switch (val) { case 'A' : println("${val} caseA") break case 'B' : println("${val} caseB") break default : println("${val} default") } } } } (new Test()).test()
输出:
A caseA A caseB A default B caseB B default C default
第二个测试:只需评论@CompileStatic
而且,任何工作都很好:
A caseA B caseB C default