gpt4 book ai didi

ios - 在函数内修改数组不起作用

转载 作者:行者123 更新时间:2023-11-28 09:33:26 25 4
gpt4 key购买 nike

我调用一个函数来处理和修改一个数组。但是数组根本没有改变。看起来像是 Swift 的主要错误???

var Draw_S = [String]();
var Draw_E = [String]();
override func viewDidLoad() {
super.viewDidLoad()
Draw_E.append("E")
Draw_E.append("E")
Draw_E.append("E")
Draw_E.append("E")
Draw_E.append("E")

Draw_S.append("S")
Draw_S.append("S")
Draw_S.append("S")
Draw_S.append("S")
Draw_S.append("S")
alter_them(Draw_S, data2: Draw_E)
for (ix, _) in Draw_S.enumerate(){
print("index: \(ix) array S: \(Draw_S[ix]) array E: \(Draw_E[ix])")
}
}
func alter_them( var data: [String], var data2: [String]){
for (i, _) in data.enumerate(){
data[i] = "1"
}
for (i, _) in data2.enumerate(){
data2[i] = "2"
}
}

调用函数后的结果为原始数组内容。

最佳答案

alter_them 中的数组是原件的副本

使用inout修改原数组:

func alter_them(inout data: [String], inout data2: [String]){
for (i, _) in data.enumerate(){
data[i] = "1"
}
for (i, _) in data2.enumerate(){
data2[i] = "2"
}
}

alter_them(&Draw_S, data2: &Draw_E)

关于ios - 在函数内修改数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32737871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com