如何在iVars数组上使用inout?

时间:2018-10-10 20:01:11

标签: swift inout

我不太理解为什么以下代码不会更新array2inout的原始值。我正在尝试在一系列iVars上使用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[0]: [11, 11, 11]
tempArray[1]: [22, 22, 22]

打印出tempArray确实表明它正在被修改:

data
proprio_com_luz
proprio_sem_ola_acabo

但是我真的希望OG数组(array1和array2)是被修改的...想法吗?

0 个答案:

没有答案