arrays - 变量共享同一个数组实例 - Javascript 类似数组

标签 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 是两个不同的实例... 我想要两个变量(具有不同的名称)指向同一个数组实例。

最佳答案

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

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"

关于arrays - 变量共享同一个数组实例 - Javascript 类似数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40854178/

相关文章:

ios - 如何知道我的 WKWebview 派生 subview 何时加载到 Swift 中

ios - UISearchController - 搜索栏应该始终可见

python - 嵌套字典分配错误 - 可变字典的困惑

scala - 如何将可变 HashMap 转换为 Scala 中的不可变等价物?

javascript - 按值比较数组中的所有对象

关于数组声明的困惑

php - 重定向后丢失 session 变量

arrays - 如何使用 Swift 将字典添加到数组?

ios - didSet vs willSet?

c++ - 除了允许 const 函数修改变量之外, 'mutable' 关键字是否还有其他用途?