Ответ 1
[:]
это сокращенная запись для создания карты.
Вы также можете добавить ключи и значения к нему:
def foo = [bar: 'baz']
Читая некоторый отличный код другого разработчика, я обнаружил следующее определение:
def foo=[:]
Что это значит?
[:]
это сокращенная запись для создания карты.
Вы также можете добавить ключи и значения к нему:
def foo = [bar: 'baz']
[:]
создает пустую карту. Двоеточие, чтобы отличить его от []
, создает пустой список.
Этот отличный код:
def foo = [:]
примерно соответствует этому java-коду:
Object foo = new java.util.LinkedHashMap();
Цитируя документ:
Обратите внимание, что
[:]
является пустым выражением карты.
... которая является единственной Map
с size()
возвращающей 0.) Сама по себе она редко полезна, но вы, конечно, можете добавлять значения в эту карту:
def emptyMap = [:]
assert emptyMap.size() == 0
emptyMap.foo = 5
assert emptyMap.size() == 1
assert emptyMap.foo == 5