使用for循环创建20个不同的对象

时间:2017-08-16 17:55:50

标签: swift object for-loop

我已为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)

}

2 个答案:

答案 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