共享相同数组实例的变量 - 类似于数组的Javascript

时间:2016-11-28 21:52:00

标签: arrays swift mutable

在Javascript中,当你这样做时:

var a = [1, 2];

var b = a;

b.push(3);

console.log(a); //Print [1, 2, 3]

a和b共享同一个数组实例。 我正在寻找一种在Swift中实现这一目标的方法

这是我的Swift代码:

var array1 = [[1], [2], [3]];

var array2 = array1[0];

array2.append(0);

print(array1);
//print [[1], [2], [3]]
//I want [[1, 0], [2], [3]]

array1 [0]& array2是两个不同的实例...... 我想要两个指向同一个数组实例的变量(名称不同)。

1 个答案:

答案 0 :(得分:2)

您必须将值类型包装到引用类型中,即类。

class wrapper {
    var array = [1,2]
}

var a = wrapper()

var b = a

b.array.append(3)

print(a.array) // [1,2,3]

阅读here您也可以使用NSMutableArray

var c : NSMutableArray = [1,2]


var d = c

d.insert(3, at: 2)

print(c) //"(\n    1,\n    2,\n    3\n)\n"