我很困惑何时使用guard
以及何时使用if...else
。守卫声明和if ... else声明之间的基本区别是什么?
警卫是替换还是替代If语句? 主要的事情想知道什么是Swift语言的guard
语句的功能好处?
任何帮助清除这种情况将不胜感激。
我很困惑何时使用guard
以及何时使用if...else
。守卫声明和if ... else声明之间的基本区别是什么?
警卫是替换还是替代If语句? 主要的事情想知道什么是Swift语言的guard
语句的功能好处?
任何帮助清除这种情况将不胜感激。
使用警卫似乎与使用if似乎没有多大区别,但有了警惕,您的意图更清晰:如果您的条件未得到满足,执行不应继续。另外它具有更短,更易读的优点,所以守卫是一个真正的改进,我相信它会很快被采用。
使用警卫有一个好处,可能会使它对你更有用:如果你用它来展开任何可选项,那些展开的值将留在你的代码块的其余部分。例如:
guard let unwrappedName = userName else {
return
}
print("Your username is \(unwrappedName)")
这是比较直的if语句,在那里展开的值将只提供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)")
对于我来说,展开的值范围的第二点是很清楚的,但是仍然没有得到当我们必须检查多个条件时,如何通过警戒语句执行提前返回。 – technerd
是否[这事先问答](http://stackoverflow.com/questions/30791488/swift-2-guard-keyword)回答你的问题? –