2011-02-09 17 views
15

esta es una pregunta bastante general sobre si las personas deberían usar corchetes en las llamadas a métodos que toman los parámetros o no. decirgroovy: use corchetes en llamadas a métodos o no?

def someFunc(def p) { 
... 
} 

luego llamar:

someFunc "abc" 

vs ...

someFunc("abc") 

Se trata sólo de una cuestión de coherencia, o hay casos de uso específicos para cada uno?

Respuesta

18

Es principalmente una cuestión de consistencia y legibilidad, pero tenga en cuenta que Groovy no siempre le permitirá salirse con la omisión de paréntesis. Por un lado, no se puede omitir el paréntesis en las llamadas a métodos anidados:

def foo(n) { n } 
println foo 1 // won't work 

Consulte la sección titulada "Omitting parentheses" en el Style guide.

3

No hay ningún caso específico en el que deba eliminarlos, siempre puede usarlos. Es más bonito dejarlos fuera.
Hay casos donde no se puede hacer eso (donde se puede confundir un parámetro lista/mapa con un operador de subíndice, por ejemplo, llamadas anidadas, o cuando la instrucción es una asignación), pero la regla general es que la llamada más externa no puede tener paréntesis si no hay ambigüedad.
(varias líneas eliminadas, como acabo de recibir la notificación de que hay un puesto que ya con esa información) Groovy 1.8 permitirá incluso más casos de omitir los paréntesis, se puede comprobar a cabo en
http://groovyconsole.appspot.com/script/355001

+0

bien, por lo que este podría ser un punto de extensibilidad entonces? al igual que el viejo problema con la gente que no utiliza la apertura y cierre de llaves en ifs y bucles? es decir, la gente siempre debe usar los corchetes en el caso en que alguien tenga que agregarlos más tarde ...? – Steven

+0

no estoy seguro si entiendo tu punto, si quieres decir si sería mejor usar paréntesis en una declaración, por ejemplo, 'foo ('x')' en lugar de 'foo 'x'' porque tal vez quieras escribir más adelante' println foo ('x') 'Yo diría que los dejaste afuera, usa' foo 'x'' y agrega paréntesis solo cuando sea necesario. – jpertino

Cuestiones relacionadas