Groovy中switch语句执行Enum分支异常问题咨询
问题:Groovy中switch执行枚举分支不符合预期?
我平时很少在Groovy中使用枚举(enum),但以下代码的运行结果不符合预期:
enum Enum{ A, B } def e = Enum.A switch(e) { case Enum.A: println("A: ${Enum.A.isCase(e)}") case Enum.B: println("B: ${Enum.B.isCase(e)}") }
该代码输出:
A: true B: false
我是否误用了枚举?为何switch语句中Enum.B分支会被执行?
编辑补充
感谢各位解答!我已修改问题,此问题与枚举无关,是我对switch语句的理解存在不足。该行为与Java switch一致,我此前并未意识到未匹配的分支也会被执行:
所有匹配case标签后的语句会依次执行,无论后续case标签的表达式如何,直到遇到break语句
看来我得检查一下工作中的相关代码了...
内容的提问来源于stack exchange,提问作者IWilms
相关产品推荐
相关产品推荐

