代码之家  ›  专栏  ›  技术社区  ›  Jan

如何在Swift的switch语句中捕获选项的值?

  •  0
  • Jan  · 技术社区  · 6 年前

    String 变成一个 Bool , Double Int 在回到a之前 字符串 . 目前我使用了一个if-else条件

    func parse(stringValue: String) {
    
        if let value = Bool(stringValue) {
            // do something with a Bool
            print(value)
    
        } else if let value =  Int(stringValue)  {
            // do something with a Int
            print("\(stringValue) is Int: \(value)")
        } else if let value = Double(stringValue) {
            // do something with a Double
            print("\(stringValue) is Double: \(value)")
        } else {
            // do something with a String
            print("String: \(stringValue)")
        }
    }
    

    这是可以的,但我个人的偏好是使用Swift中的switch语句,但我不知道如何在不强制展开的情况下这样做:

    func parse(stringValue: String) {
    
        switch stringValue {
        case _  where Bool(stringValue) != nil:
            let value = Bool(stringValue)!
            // do something with Bool
        case _ where Int(stringValue) != nil:
            let value = Int(stringValue)!
            // do something with Int
        case _ where Double(stringValue) != nil:
            let value = Double(stringValue)!
            // do something with Double
        default:
            // do something with String
        }
    }
    

    如何获取 where case 范围?

    0 回复  |  直到 6 年前