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'']