2014-04-04 14 views

Trả lời

11

[:] là ký pháp viết tắt để tạo Bản đồ.

Bạn cũng có thể thêm các phím và các giá trị với nó:

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

tôi tưởng tượng nhiều mục được phân cách bằng dấu phẩy? '[bar: 'baz', qux: 'quux']' –

+0

@martinjakubik có đúng là – doelleri

2

Trích dẫn the doc:

ý rằng [:] là sự biểu hiện bản đồ trống.

... đó là chỉ Map với size() trở về 0.) Bằng cách riêng của mình, đó là hiếm khi hữu ích, nhưng bạn có thể thêm giá trị vào Bản đồ này, tất nhiên:

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

Về mặt kỹ thuật, "là' Bản đồ' duy nhất có 'kích thước()' trả về 0 "là không đúng sự thật. Có rất nhiều trường hợp bản đồ có thể có kích thước 0 và chúng chắc chắn không phải tất cả đều có tham chiếu bình đẳng. Tất cả họ sẽ "bình đẳng", mặc dù (giả sử họ không bị đột biến), đó có lẽ là ý của bạn. –

5

[:] tạo ra một sản phẩm nào Bản đồ. Dấu hai chấm ở đó để phân biệt nó với [], tạo ra một Danh sách trống.

đang groovy này:

def foo = [:] 

là tương đương với mã java này:

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