online method functions variables groovy definition

variables - method - ¿Qué significa[:] en groovy?



groovy operators (3)

Mientras leía un código maravilloso de otro desarrollador encontré la siguiente definición:

def foo=[:]

Qué significa eso?


Citando el doc :

Observe que [:] es la expresión de mapa vacía.

... que es el único Map con size() devuelve 0.) Por sí mismo, rara vez es útil, pero puede agregar valores a este Mapa, por supuesto:

def emptyMap = [:] assert emptyMap.size() == 0 emptyMap.foo = 5 assert emptyMap.size() == 1 assert emptyMap.foo == 5


[:] crea un mapa vacío. Los dos puntos están ahí para distinguirlo de [] , lo que crea una Lista vacía.

Este maravilloso código:

def foo = [:]

es aproximadamente equivalente a este código java:

Object foo = new java.util.LinkedHashMap();


[:] es una notación abreviada para crear un mapa.

También puedes agregarle claves y valores:

def foo = [bar: ''baz'']