Change Groovy switch语句

如果一个Groovy 3 switch语句有一个默认分支,那么它必须是最后一个分支。这意味着您不能再将默认分支放在除了分支列表的最后一个位置之外的任何其他位置。

以下代码不能在Groovy 3下编译:

switch(yourVariable) {default: //默认动作中断情况'a': //设置动作中断}

为了纠正上面的代码,把默认分支放在最后:

switch(yourVariable) {case 'a': // case动作中断default: //默认动作中断}

您的代码将与所有分支的行为完全相同打破语句,这样每个分支都是孤立的,不会影响其他分支。

切换失败

当分支没有打破语句,这样就可以执行多个分支,而不仅仅是匹配的那个。

交换机故障示例:

def result = "" switch(yourVariable) {default: result += "default " //由于没有break语句,"case a"将在下一个case 'a'执行:result += "a " //由于没有break语句,"case b"将在下一个case 'b'执行:result += "b"}

yourVariable有价值“一个”,结果变量将等于“b”.当yourVariable有价值“b”,结果变量将等于“b”.在所有其他情况下,结果变量将等于" default a b "

要使代码在Groovy 3下编译,请将默认分支放在最后。然而,为了获得与直通开关相同的结果,你还必须调整其余的代码:

Groovy 3切换切换等效:

def result = "" switch(yourVariable) {case 'a': result = "a b" break case 'b': result = "b" break default: result = "default ab " break}