我在 for 循环中追加,但由于某种原因而不是在最后追加,它更改了数组中的所有现有值。
let a = 2
class people {
var name = " "
var height = Int()
}
var trial = " "
var p = [people]()
var user = people()
for i in 0...a-1{
if(i==0){
user.name = "jack"
user.height = 180
}
else {
user.name = "ryan"
user.height = 120
}
p.append(user)
print(p[i].name, p[i].height);
}
for i in 0...a-1 {
print(p[i].name, p[i].height);
}
预期: - jack 180 ryan 120 jack 180 ryan 120
结果:- 杰克 180 瑞安 120 瑞安 120 瑞安 120
你只有一个创建instance
的people
,并添加这个instance
阵列中的两次。但问题是当您第二次分配该值时,它会替换相同instance
.
您必须为每个新用户在您instnse
的people
内部创建新的for loop
。像下面
let a = 2
class people {
var name = " "
var height = Int()
}
var trial = " "
var p = [people]()
//var user = people() remove this line from here and add inside for-loop
for i in 0...a-1{
var user = people() // add this line here.
if(i==0){
user.name = "jack"
user.height = 180
}
else {
user.name = "ryan"
user.height = 120
}
p.append(user)
print(p[i].name, p[i].height);
}
for i in 0...a-1 {
print(p[i].name, p[i].height);
}
快乐编码
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句