字面量
字面量协议
- Swift 自带类型之所以能够通过字面量初始化,是因为它们遵守了对应的协议
字面量协议的运用
模式匹配
通配符模式
元组模式
枚举 case 模式
- if case 模式等价于只有一个 case 的 swiftch 语句
if age < 9 && age > 0 {
}
if case 0...9 = age {
}
switch age {
case 0...9:
print("0...9")
default: break
}
let ages: [Int?] = [2, 3, nil, 5]
for case nil in ages {
print("有 nil 值")
break
}
可选模式
let age: Int? = 42
if case .some(let x) = age { print(x) }
if case let x? = age { print(x) }
类型转换模式
- is 判断之后是不会进行类型强制转换的
- 如果在里面强制转换的话,用 case let num as Int 就好了
let num: Any = 6
switch num {
case is Int:
print("is Int", num)
case let num as Int:
default:
break
}
表达式模式
where
思考
- 代码优化的部分可以用到