闭合形式的开关盒不能正确匹配

时间:2015-02-11 16:50:18

标签: regex string groovy switch-statement closures

我正在尝试使用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;
 .....
}

似乎匹配正在发挥作用,但由于某种原因,情况仍未触发。那是为什么?

1 个答案:

答案 0 :(得分:2)

您需要将partialMatch放入Closure,以便switch执行它:

case {partialMatch(s, "b")}: