声明:
1> guard 必须使用在函数里面
2> guard 语句必须带有else语句
语法如下:
· 当条件表达式为 true 时跳过 else 语句内容,执行语句组内容
· 条件表达式为 false 时执行 else 内容, 跳过语句一般为 return 、break、continue、throw.
例子:
// 如果一个人想去网吧玩游戏 要检查他是否成年,是否带有身份证
func check(_ age: Int, idCard: Bool){
// 传统逻辑判断 首先判断有没有18岁
if age >= 18 {
// 继续判断有没有带身份证
if idCard {
print("可以上网")
}else{
print("没带身份证")
}
}else{
print("未成年人")
}
}
// 使用 guard 判断
func check(_ age: Int, idCard: Bool){
// 当 age 条件不满足时 直接跳出 不在执行接下来的操作
guard age >= 18 else {
print("未成年人")
return
}
// 当 age 满足条件 idCard 不满足条件时 也不在执行接下来的操作
guard idCard else {
print("没带身份证")
return
}
// 两个条件都满足
print("可以上网")
}
// 两个对比 guard 在逻辑判断中比 if 简便
// 但个人习惯问题 还是自己选择自己能懂的逻辑