2014-04-04 13 views

risposta

11

[:] è una notazione abbreviata per la creazione di una mappa.

è inoltre possibile aggiungere chiavi e valori ad esso:

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

immagino più voci sono separate da una virgola? '[bar: 'baz', qux: 'quux']' –

+0

@martinjakubik si è corretto – doelleri

2

Citando the doc:

noti che [:] è la mappa espressione vuota.

... che è l'unico Map con size() ritorno 0.) Di per sé, è raramente utile, ma è possibile aggiungere i valori in questa mappa, ovviamente:

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

Tecnicamente, "è l'unica' Mappa' con 'size()' la restituzione di 0 "non è vera. Ci sono molte possibili istanze di mappe con dimensione 0, e sicuramente non tutte hanno uguaglianza di riferimento. Saranno tutti "uguali", anche se (supponendo che non vengano mutati), che probabilmente è ciò che intendevi. –

5

[:] crea un vuoto Carta geografica. Il colon è lì per distinguerlo da [], che crea una lista vuota.

Questo codice Groovy:

def foo = [:] 

è più o meno equivalente a questo codice java:

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