如何修复Swift枚举开关大小写问题

时间:2019-01-09 11:57:02

标签: swift enums switch-statement swift4.2

假设我们有这个枚举和一些切换枚举本身的函数。

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(小马:“可爱的小马”,尾巴:“粉红色”).getSome() 是

"User muchacha (pony: "cute pony", tail: "pink")"

gist

为什么会发生?

0 个答案:

没有答案