Почему круглые скобки необязательны в Groovy, только если вам не нужно возвращаемое значение? - PullRequest
1 голос
/ 21 февраля 2011

Например, это:

groovy:000> Arrays.asList 1,2,3,4,5
===> [1, 2, 3, 4, 5]

работает, потому что значение не нужно.

Но когда возвращаемое значение присваивается переменной:

groovy:000> a = Arrays.asList 1,2,3,4,5
ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, groovysh_parse: 1: unexpected token: 1 @ line 1, column 19.
   a = Arrays.asList 1,2,3,4,5
                     ^

1 error

        at java_lang_Runnable$run.call (Unknown Source)

Сбой.

Чтобы запустить его, вам нужны скобки.

groovy:000> a = Arrays.asList( 1,2,3,4,5)
===> [1, 2, 3, 4, 5]

Есть ли причина этого в дизайне? Или это просто так, как это было реализовано?

Ответы [ 2 ]

3 голосов
/ 21 февраля 2011

Исторически я не знаю ответа, но учтите:

Ваш пример должен работать с Groovy1.8 бета3 +

1 голос
/ 21 февраля 2011

, потому что вы не сможете связать вызовы методов с возвращаемым значением без них.(было бы неоднозначно, если вы хотите соединиться с отдельным параметром или возвращаемым значением.)

...