Groovy по сравнению с несоответствием синтаксиса Java
В Java я могу это сделать:
return a
&& b
&& c;
В Groovy он возвращает ошибку компиляции: unexpected token: &&
. Это также происходит, если я опускаю ключевое слово return
в Groovy. Однако, если я заключу оператор в круглые скобки, он отлично работает.
Во всех ресурсах Groovy, которые я прочитал, мне сказали, что я должен писать "прямую Java" везде, где захочу. Это ошибка? Если нет, в чем причина этого дизайнерского решения?
Я посмотрел здесь, но не нашел эту проблему в списке. Я понимаю, что есть некоторые вещи, которые нельзя унаследовать от Java, но это не похоже на одну из этих вещей.
Ответы
Ответ 1
Проблема в том, что Groovy не требует явных терминаторов строк, а return a
сам по себе выглядит как действительный оператор. Вы можете использовать:
return a &&
b &&
c;
Или используйте продолжение строки:
return a \
&& b \
&& c;
Неверно, что все Java действительно Groovy. Хотя большинство синтаксиса Java охвачены, иногда функция Groovy будет влиять на действительную Java.
Ответ 2
Groovy, похоже, не требует точки с запятой, поэтому я думаю, что ваш код задается так:
return a;
&& b;
&& c;
Из документация:
Groovy использует аналогичный синтаксис для Java, хотя в Groovy точки с запятой являются необязательными.
Это позволяет немного печатать, но также делает код более чистым (что удивительно для таких незначительных изменений). Таким образом, обычно , если один оператор находится в каждой строке, вы можете полностью исключить точки с запятой - хотя его проблема не стоит использовать, если вы хотите. Если вы хотите поместить несколько операторов в строку, используйте точку с запятой для разделения операторов.
Ответ 3
вы можете сделать почти все java в groovy, за исключением того, что вы смотрите на следующее.
http://groovy.codehaus.org/Differences+from+Java
если вы хотите сделать прямую java, тогда вы можете сделать это в классе *.java и перенести его в папку src.