在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