Почему ":" в конце Groovy не выдает никакой ошибки? - PullRequest
0 голосов
/ 12 декабря 2018

Я ошибочно написал следующее в groovy консоли, но потом понял, что должно выдать ошибку, но это не так.В чем причина того, что groovy не выдает ошибку для двоеточия в конце оператора? Выделена ли она для документации или что-то в этом роде?

    a:
    String a
    println a

Это не выдало ошибку, когда я попытался выполнить этот код в https://groovyconsole.appspot.com/

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Одно хорошее использование меток в Groovy, о котором я могу подумать, это Spock Framework, где они используются для предложений:

def 'test emailToNamespace'() {
  given:
  Partner.metaClass.'static'.countByNamespaceLike = { count }

  expect:
  Partner.emailToNamespace( email ) == res

  where:
  email                                      |  res                       | count
  'aaa.com'                                  |  'com.aaa'                 | 0
  'aaa.com'                                  |  'com.aaa1'                | 1
}
0 голосов
/ 12 декабря 2018

Это метка, как в Java.Например:

a:
for (int i = 0; i < 10; i++)
{
    String a = "hello"
    println a
​    break a; // This refers to the label before the loop
}​
...