我不太明白为什么下面的代码不会更新array1
and的原始值array2
。我正在尝试inout
在一系列 iVar 上使用...
import UIKit
class ViewController: UIViewController {
// MARK: instance variables
var array1: [Int] = [1, 1, 1]
var array2: [Int] = [2, 2, 2]
// MARK: lifecycle methods
override func viewDidLoad() {
super.viewDidLoad()
var tempArray = [array1, array2]
performOperationOn(&tempArray)
print("array1: \(array1)")
print("array2: \(array2)")
print("tempArray[0]: \(tempArray[0])")
print("tempArray[1]: \(tempArray[1])")
}
// MARK: private methods
private func performOperationOn(_ array: inout [[Int]]) {
array[0][0] = 11
array[0][1] = 11
array[0][2] = 11
array[1][0] = 22
array[1][1] = 22
array[1][2] = 22
}
}
...
上面打印出来:
array1: [1, 1, 1]
array2: [2, 2, 2]
有什么方法可以实现我的期望:
array1: [11, 11, 11]
array2: [22, 22, 22]
打印出 tempArray 确实表明它正在被修改:
tempArray[0]: [11, 11, 11]
tempArray[1]: [22, 22, 22]
但我真的希望 OG 数组(array1 和 array2)成为被修改的数组......想法?