guard 守卫,在 Swift 2.0 推出的语法
和 if let 刚好相反
guard let 是在判断之后的分支有效
如果守护的变量 为 nil,直接提示并且返回 可选项的演示
/// if let/var
func optionDemo3() {
var x: Int? = 10
// if let 判断(是否为nil) + 设置数值
// 分支内部的 num 是一定有值的,可以避免考虑 `!` 的问题
// num 的作用域只是在 {} 内部
// 使用频率高!
if let num = x {
// num += 10
print(num)
}<pre name="code" class="objc"> // 如果在分支内部希望修改数值,可以使用 if var
if var num = x {
num += 10
print(num)
}
// if let x = x,前面的 x 是一个临时的局部变量,作用域仅在 {}
// 用处:有的时候,起名字困难!
if let x = x {
print("----")
print(x + 10)
}
func optionDemo2() {
var x: Int? //= 10
// (x ?? 0)
// 对于可选项 x,如果有值,使用 x 的值
// 如果没有值,使用 ?? 后面的值替代
// 正确写法
print((x ?? 0) + 10)
// ?? 的优先级低,为了不必要的麻烦,一定记住使用 ()
// 错误的写法
print(x ?? 20 + 10)
}
func optionDemo() {
let x: Int? = 10
// 可选项参与计算前需要解包
// 在 Swift 中,关于 if 语句如果没有写好,可能会非常的丑陋!
if x != nil {
print(x! + 10)
}
}
/// 三目运算
func demo2() {
let x = 10
// 三目运算符在 Swift 中如果使用得当,能够简化代码
x > 5 ? print("大") : print("小")
if x > 6 {
print("大")
}
let v = UIView()
/*
目的:`()` 表示执行,空的执行
*/
x > 6 ? print("大") : ()
}
let x = 10
1. 没有 ()
2. 必须要有 `{}`
3. 没有单条的 if ,一定要使用 {}
`{}` 是用来包装一段代码
4. 很多公司的代码规范中,是不允许不使用 {}
5. Swift中没有,非零即真,所有的逻辑条件必须指定 true / false
/
/ if x > 8
// print("hehe")
// print("hehe")
if x > 5 {
print("大")
} else {
// 编译器自动判断分支结构,无法进入
print("小")
}
}
}