我正在尝试使用Groovy的模式匹配基于部分字符串创建一个切换案例。我已经有了这个工作 -
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;
.....
}
似乎匹配正在发挥作用,但由于某种原因,情况仍未触发。那是为什么?
答案 0 :(得分:2)
您需要将partialMatch
放入Closure,以便switch
执行它:
case {partialMatch(s, "b")}: