我在groovy中有一个列表a = [1, 2]
。我将此作为参数传递给方法并执行a.add(3)
。这是在最后添加元素。但其他人正在其他地方访问相同的数组,我不希望他们看到我对这个数组所做的任何更改。我开始知道我们只能将数组作为参考传递(如果我错了,请纠正我)。
但是,在JavaScript中我们有类似arr = [1, 2]
和arr.concat(3)
的内容 - 这会返回一个数组[1, 2, 3]
,但如果我们打印arr
,它仍会打印[1, 2]
如果有任何方法可以在groovy中实现这一点,请告诉我。
答案 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]]