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