目前还在review 中,看得出下个版本会使用,枚举在相同的情况下已经可以有多个模式,并且在它们的值上匹配(如果它们具有相同的类型)。
Swift 5.3对围绕模式匹配的catch子句的功能进行了微小但非常受欢迎的改进。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
enum MyError: Error {
case upsy(String)
case badabum(String)
case lol
case another
}
func errorPlease() throws {
// throw MyError.another
throw MyError.upsy("ups")
}
do {
try errorPlease()
} catch MyError.another {
print("aother")
} catch MyError.badabum(let message),
MyError.upsy(let message) {
print(message)
} catch {
print(error)
}