多模式捕获条款

Posted by Genie on August 30, 2020

目前还在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)
}