Czytając niektóre groovy kodu innego dewelopera natknąłem się następującą definicję:Co znaczy [:] w groovy?
def foo=[:]
Co to oznacza?
Czytając niektóre groovy kodu innego dewelopera natknąłem się następującą definicję:Co znaczy [:] w groovy?
def foo=[:]
Co to oznacza?
[:]
to skrótowa notacja do tworzenia mapy.
Można również dodać klucze i wartości do niego:
def foo = [bar: 'baz']
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
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. –
[:]
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();
sobie wyobrazić wiele wpisów są oddzielone przecinkami? '[bar: 'baz', qux: 'quux']' –
@martinjakubik tak, to jest poprawne – doelleri