Возможно, вы могли бы использовать макросы компилятора __DATE__
__TIME__
внутри своего кода, а не получать его из cmake. Стоит упомянуть, что вам нужно будет очистить / сделать, чтобы обновить эти значения (поскольку GCC внедряет его, если объект уже скомпилирован, он не будет компилироваться снова, поэтому нет изменения даты / времени)
Основываясь на ваших изменениях, я считаю, что это должно сработать:
if (a == 1 && b == 2 && c == 3) {
// do something
} else if (a == 4 && b == 5 && c == 6) {
// do something else
}
Если вы действительно хотите вместо него использовать оператор switch, это возможно:
def val = [a, b, c]
switch (val) {
case {it == [1, 2, 3]}:
// something
break;
case {it == [4, 5, 6]}:
// something else
break;
Но я не уверен, почему вы предпочитаете это блоку if / else.
Groovy - это просто грязная Java, вам не нужно никакого определения класса. все, что вы пишете в java-методе, вы можете написать прямо в groovy.
switch (num) {
case 1:
case 2:
case 3:
System.out.println("1 through 3");
break;
case 6:
case 7:
case 8:
System.out.println("6 through 8");
break;
}
Чтобы ответить на ваш вопрос, внутри переключателя нам нужно выражение, а не параметры функции.