Swift 3 - 定义可能有两种类型的字典

时间:2016-12-12 14:27:51

标签: swift object dictionary types swift3

是否可以为值定义两种类型的dictionray?类似的东西:

var obj = [String: String, Int]()

2 个答案:

答案 0 :(得分:3)

您可以使用协议扩展所需的所有类型,并且值具有该协议类型:

protocol StringOrInt {};
extension String: StringOrInt {}
extension Int: StringOrInt {}

let dict = [String: StringOrInt]()

使用枚举可能会更好,例如:

enum StringOrInt {
  case string(String)
  case int(Int)
}

let obj: [ String : StringOrInt] = [
    "a": .string("Hello"),
    "b": .int(42)
]

答案 1 :(得分:0)

使用Anyvar someObject : [String:Any] = [:]