2013-08-19 38 views

Trả lời

10

* đại diện cho Spread Operator. Xây dựng ví dụ của bạn:

a = 1..5 
b = [*1..5] 
c = [1..5] 

assert a.class.name == "groovy.lang.IntRange" //Is a range from 1 till 5 
assert b.class.name == "java.util.ArrayList" //Spread the range in a list 
assert c.class.name == "java.util.ArrayList" //Is a list 

Mở rộng @ giải thích ataylor của:

assert a.size() == 5 
assert b.size() == 5 
assert c.size() == 1 

Để đạt được từng yếu tố trong c bạn phải lặp trên nó (đó là một loạt)

c.each{println it} 

Groovy Goodness bởi Ông Haki có một ví dụ chi tiết về cách sử dụng của nó.

2

đây * (nhà điều hành lây lan) mở rộng phạm vi 1..5 và do đó bạn sẽ có được một danh sách các số nguyên trong phạm vi đó [1, 2, 3, 4, 5]

6

Khi bạn đặt một đối tượng phạm vi trong một danh sách, bạn sẽ có được một danh sách với một yếu tố của loại IntRange :

assert [1..5].size() == 1 

bằng cách áp dụng các nhà điều hành lây lan nó mở rộng phạm vi và bạn sẽ có được một danh sách với năm yếu tố, các số nguyên thực tế phạm vi đại diện:

assert [*1..5].size() == 5 
+0

Bạn nhận được ý chính. Cảm ơn!! :) – dmahapatro

+0

Rõ ràng và chính xác! Cảm ơn – Chinmay

Các vấn đề liên quan