ios – Swift 2:守卫在循环?

在for循环中使用guard的正确方法是什么?
for (index,user) in myUsersArray.enumerate() {

    guard user.id != nil else {
        print("no userId")
        //neither break / return will keep running the for loop
    }

    if user.id == myUser.id {

        //do stuff

    }
}

解决方法

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

你可以为整体做个条件.它将被称为每次迭代

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 }
}

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

for (index,user) in myUsersArray.enumerate() {
    guard let userId = user.id,userId == myUser.id else { continue }

    // do stuff with userId
}

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...