在groovy中将值连接到List

时间:2015-01-27 17:14:00

标签: groovy

我在groovy中有一个列表a = [1, 2]。我将此作为参数传递给方法并执行a.add(3)。这是在最后添加元素。但其他人正在其他地方访问相同的数组,我不希望他们看到我对这个数组所做的任何更改。我开始知道我们只能将数组作为参考传递(如果我错了,请纠正我)。

但是,在JavaScript中我们有类似arr = [1, 2]arr.concat(3)的内容 - 这会返回一个数组[1, 2, 3],但如果我们打印arr,它仍会打印[1, 2]

如果有任何方法可以在groovy中实现这一点,请告诉我。

2 个答案:

答案 0 :(得分:2)

您可以使用加号,因为它会创建一个新列表:

def a = [ 1, 2 ]
def b = a + 3

assert a == [1, 2]
assert b == [1, 2, 3]

答案 1 :(得分:1)

您可以将列表一起添加以进行连接。我更喜欢这个'+'单个元素,因为一切都有一致的类型(List - > List - > List),所以如果你要添加的'element'本身就是一个集合,它仍然有用。

def a = [ 1, 2 ]
def b = a + [3]

assert a == [1, 2]
assert b == [1, 2, 3]

def c = a + [[3, 4]]
assert c == [1, 2, [3, 4]]