闭合形式的开关盒匹配不当
Switch case in closure form not matching properly
我正在尝试使用 Groovy 的模式匹配基于部分字符串创建一个 switch case。我已经开始工作了 -
String s = "abc";
switch(s){
case { it =~ /b/ } :
//this works
break;
.....
}
但是当我尝试抽象出闭包时,我 运行 变成了问题 -
String s = "abc";
def partialMatch = {string, pattern -> string =~ /$pattern/}
switch(s){
case partialMatch(s, "b"):
//this doesn't work
break;
.....
}
似乎匹配成功了,但由于某种原因,案件仍然没有触发。这是为什么?
您需要将 partialMatch
放入闭包中才能由 switch
:
执行
case {partialMatch(s, "b")}:
我正在尝试使用 Groovy 的模式匹配基于部分字符串创建一个 switch case。我已经开始工作了 -
String s = "abc";
switch(s){
case { it =~ /b/ } :
//this works
break;
.....
}
但是当我尝试抽象出闭包时,我 运行 变成了问题 -
String s = "abc";
def partialMatch = {string, pattern -> string =~ /$pattern/}
switch(s){
case partialMatch(s, "b"):
//this doesn't work
break;
.....
}
似乎匹配成功了,但由于某种原因,案件仍然没有触发。这是为什么?
您需要将 partialMatch
放入闭包中才能由 switch
:
case {partialMatch(s, "b")}: