我很困惑何时使用guard
以及何时使用if...else
.
对于If语句,守卫是替代还是替代?主要想知道guard
Swift语言语句的功能有哪些好处?
任何帮助清除这种情况将不胜感激.
使用警卫可能与使用if似乎没什么不同,但是使用警卫你的意图更清楚:如果你的条件不满足,执行不应该继续.此外,它具有更短,更易读的优点,因此防护是一项真正的改进,我相信它会很快被采用.
使用guard会有一个好处,可能会使它对你更有用:如果你用它来解开任何选项,那些那些未包装的值会留在你身边,供你在其余的代码块中使用.例如:
guard let unwrappedName = userName else { return } print("Your username is \(unwrappedName)")
这与直接if语句相比,其中unwrapped值仅在if块内可用,如下所示:
if let unwrappedName = userName { print("Your username is \(unwrappedName)") } else { return } // this won't work – unwrappedName doesn't exist here! print("Your username is \(unwrappedName)")
https://www.hackingwithswift.com/swift2