在Groovy中,是什麼樣的區別,Groovy中的1..5,[* 1..5]和[1..5]有什麼區別?
def a=1..5
def b= [*1..5]
def c=[1..5]
什麼*
在[*1..5]
象徵什麼?
在Groovy中,是什麼樣的區別,Groovy中的1..5,[* 1..5]和[1..5]有什麼區別?
def a=1..5
def b= [*1..5]
def c=[1..5]
什麼*
在[*1..5]
象徵什麼?
*
代表Spread Operator。闡述你的例子:
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
擴展@ ataylor的解釋:
assert a.size() == 5
assert b.size() == 5
assert c.size() == 1
要c
達到每個元素,你必須遍歷它(這是一個範圍)
c.each{println it}
Groovy Goodness通過哈基先生有一個詳細的使用例子。
這裏*
(傳播運營商)擴大了範圍1..5
,因此你在這個範圍內[1, 2, 3, 4, 5]
的整數列表當你把一個範圍內的對象列表中,你會得到一個清單,IntRange
類型的一個元素:
assert [1..5].size() == 1
通過應用傳播運營商擴大其範圍,你會得到一個清單,五行,實際整數範圍表示:
assert [*1..5].size() == 5
你已經擺好了要點。謝謝!! :) – dmahapatro
清晰準確!謝謝 – Chinmay
現在是否有可能接受適當的答案? – dmahapatro