我已为Teams
创建了一个类,并希望使用for循环创建此类的20个对象。
理想情况下,循环应该将团队创建为列表" Team0"," Team1"," Team2" ......等。
class Team{
//Alphabetical Order Number
var num = "0"
init(){
print("New team")
}
}
var Teams = [String]()
for i in 1...5{
var Team[i] = Team()
print(i)
}
答案 0 :(得分:0)
您的代码不会尝试将您的团队添加到数组中,也不会尝试设置每个团队的network[0]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-44-297be643431d> in <module>()
----> 1 network[0]
IndexError: too many indices for array
属性。
你需要这样的东西:
num
注意变量应该以小写字母开头。
请注意您的数组类型是如何错误的。它必须是var teams = [Team]()
for i in 1...20 {
let team = Team()
team.num = "\(i)"
teams.append(team)
}
的数组,而不是Team
的数组。
请注意您的变量声明String
是如何有效的。
您可能还想在Team[i]
类中添加init
方法,该方法需要一个数字:
Team
然后在你的循环中你可以替换:
init(_ num: Int) {
self.num = "\(num)"
}
只是:
let team = Team()
team.num = "\(i)"
答案 1 :(得分:0)
鉴于
class Team{
let num:Int
init(num:Int) {
self.num = num
}
}
你可以写
let teams = (0..<20).map(Team.init)
结果
teams[0].num // 0
teams[1].num // 1
teams[2].num // 2