Groovy оператор переключателя с несколькими переменными

Возможно, вы могли бы использовать макросы компилятора __DATE__ __TIME__ внутри своего кода, а не получать его из cmake. Стоит упомянуть, что вам нужно будет очистить / сделать, чтобы обновить эти значения (поскольку GCC внедряет его, если объект уже скомпилирован, он не будет компилироваться снова, поэтому нет изменения даты / времени)

3
задан Alex Skorkin 16 January 2019 в 21:23
поделиться

2 ответа

Основываясь на ваших изменениях, я считаю, что это должно сработать:

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.

0
ответ дан Daniel 16 January 2019 в 21:23
поделиться

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;
}

Чтобы ответить на ваш вопрос, внутри переключателя нам нужно выражение, а не параметры функции.

0
ответ дан Groot 16 January 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: