Groovy: использовать скобки при вызове метода или нет?
Это довольно общий вопрос о том, должны ли люди использовать скобки для вызовов методов, которые принимают параметры или нет.
то есть.
def someFunc(def p) {
...
}
затем вызов:
someFunc "abc"
против...
someFunc("abc")
Это просто вопрос согласованности, или существуют конкретные варианты использования для каждого?
Ответы
Ответ 1
В первую очередь это вопрос согласованности и удобочитаемости, но обратите внимание, что Groovy не всегда позволит вам уйти с отсутствием круглых скобок. Во-первых, вы не можете пропустить круглые скобки во вложенных вызовах метода:
def foo(n) { n }
println foo 1 // won't work
См. раздел "" Опущение скобок " в Стиль руководство.
Ответ 2
Нет конкретного случая, когда вы должны удалить их, вы всегда можете их использовать. Это просто красивее, чтобы оставить их.
Есть случаи, когда вы не можете этого сделать (где вы могли бы смутить параметр списка/карты с помощью оператора индекса, например, вложенных вызовов или когда оператор является назначением), но общее правило заключается в том, что внешний вызов может иметь нет круглых скобок, если нет двусмысленности.
(удалил несколько строк, так как я только что получил уведомление о том, что есть сообщение уже с этой информацией)
Groovy 1.8 позволит еще большему числу случаев опустить скобки, вы можете проверить их на сайте
http://groovyconsole.appspot.com/script/355001
Ответ 3
"пустая пара скобок - это просто бесполезный синтаксический шум!"
Мне кажется, что они поощряют вас использовать круглые скобки, когда они служат цели, но опускают их, когда они просто "шум"