使用 Guard
Version >= 2.0
Guard 检查条件,如果为 false,则进入分支。防卫检查分支机构必须通过 return
,break
或 continue
(如适用)离开其封闭区块; 如果不这样做会导致编译器错误。这样做的好处是,当写入 guard
时,不可能让流量意外地继续(就像使用 if
一样)。
使用保护可以帮助保持较低的嵌套级别 ,这通常可以提高代码的可读性。
func printNum(num: Int) {
guard num == 10 else {
print("num is not 10")
return
}
print("num is 10")
}
Guard 还可以检查是否有处于一个值可选 ,然后在外部范围解开它:
func printOptionalNum(num: Int?) {
guard let unwrappedNum = num else {
print("num does not exist")
return
}
print(unwrappedNum)
}
Guard 可以使用 where
关键字组合可选的展开和条件检查:
func printOptionalNum(num: Int?) {
guard let unwrappedNum = num, unwrappedNum == 10 else {
print("num does not exist or is not 10")
return
}
print(unwrappedNum)
}