2014-04-04 14 views

Odpowiedz

11

[:] to skrótowa notacja do tworzenia mapy.

Można również dodać klucze i wartości do niego:

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

sobie wyobrazić wiele wpisów są oddzielone przecinkami? '[bar: 'baz', qux: 'quux']' –

+0

@martinjakubik tak, to jest poprawne – doelleri

2

Cytowanie the doc:

Uwaga, [:] jest pusta mapa ekspresja.

... co jest jedynym Map z size() powrocie 0.) Sama to rzadko użyteczne, ale można dodać wartości do tej mapy, oczywiście:

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

Technicznie "jest jedyną' Mapą 'z' size() 'return 0" jest nieprawdziwe. Istnieje wiele możliwych instancji map o rozmiarze 0 i zdecydowanie nie wszystkie mają równość odniesienia. Wszyscy będą jednakowi "równi" (zakładając, że nie zostaną zmutowani), co prawdopodobnie miało znaczenie. –

5

[:] tworzy pusty Mapa. Dwukropek jest tam, aby odróżnić go od [], który tworzy pustą listę.

Ten kod Groovy:

def foo = [:] 

jest z grubsza odpowiednikiem tego kodu Java:

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