Случай переключения в закрытой форме не соответствует должным образом

Я пытаюсь сделать случай переключения, основанный на частичных строках, используя сопоставление с образцом 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 ответ

Решение

Вам нужно положить partialMatch в закрытии для его выполнения switch:

case {partialMatch(s, "b")}:
Другие вопросы по тегам