Swift 2:守卫for for循环?

时间:2015-10-01 21:55:29

标签: ios for-loop error-handling swift2

在for循环中使用guard的正确方法是什么?

public class Panel {

    public Dictionary<string, string> AllAttributes {get;set;}

    [XmlElement("image", typeof(Image))]
    [XmlElement("panel", typeof(Panel))]
    public object[] Items { get; set; }

}

3 个答案:

答案 0 :(得分:24)

有几种方法可以制定一些条件:

你可以为整体提出一个条件。每次迭代都会调用它

Ssn

您可以检查内部的内容并跳过迭代或停止循环:

for (index, user) in myUsersArray.enumerate() where check() {}
for (index, user) in myUsersArray.enumerate() where flag == true {}

在你的情况下,我会写这样的东西:

for (index, user) in myUsersArray.enumerate() {
    guard check() else { continue }
    guard flag else { break }
}

答案 1 :(得分:4)

@Arsens答案是正确的,但我认为这更容易理解

let ints = [1,2,3,4,5]

for (index,value) in ints.enumerate() {

        guard value != 1 else {
            print("Guarded \(value)")
            continue
        }

        print("Processed \(value)")
}

答案 2 :(得分:2)

for (index,user) in myUsersArray.enumerate() {

    guard let userId = user.id else {
        print("no userId")
        continue;
    }

    if userId == myUser.id {

        //do stuff

    }
}