本文介绍了修改函数中的数组不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我调用一个函数来处理和修改数组.但是数组根本不改变.看起来像是Swift的主要错误???
I call a function to process and modify an array. But the array does not change at all. Looks like a Swift major bug ???
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"
}
}
调用该函数后的结果显示原始数组内容.
The result after calling the function shows original array content.
推荐答案
alter_them
中的数组是原始文件的副本.
The arrays inside alter_them
are a copy of the originals.
使用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)
这篇关于修改函数中的数组不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!