【发布时间】:2020-02-06 16:41:46
【问题描述】:
我在 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);
}
预期:- 千斤顶 180 瑞安120 千斤顶 180 瑞安120
结果:- 千斤顶 180 瑞安120 瑞安120 瑞安120
【问题讨论】:
-
请注意,Swift 约定以大写字母开头的类命名
-
var user = people() 在 for 循环中声明
-
你应该使用一个结构体,将它的属性声明为常量并使用它的默认初始化器
struct People {let name: Stringlet height: Int}let people: [People] = [.init(name: "jack", height: 180), .init(name: "ryan", height: 120)]for person in people {print(person.name, person.height)}跨度>