假设我们有这个 enum 和一些 switch throw enum 本身的函数。
import UIKit
enum DumbTest {
case get(user: String)
case get(pony: String, tail: String)
func getSome() -> String {
switch self {
case .get(let user):
return "User muchacha \(user)"
case .get(let pony, let tail):
return "Fluttershy \(pony) with \(tail) tail"
}
}
}
DumbTest.get(pony: "cute pony", tail: "pink").getSome()
但是,似乎 swift 不明白它的不同情况,显示如下警告:
1. Case is already handled by previous patterns; consider removing it
2. Case will never be executed
对于这个字符串
case .get(let pony, let tail):
结果为
DumbTest.get(pony: "可爱的小马", tail: "pink").getSome() 是
"User muchacha (pony: "cute pony", tail: "pink")"
有要点
为什么会这样?