【发布时间】:2017-04-27 10:47:04
【问题描述】:
是否可以定义具有两种可能的值类型的字典?比如:
var obj = [String: String, Int]()
【问题讨论】:
标签: swift object dictionary types swift3
是否可以定义具有两种可能的值类型的字典?比如:
var obj = [String: String, Int]()
【问题讨论】:
标签: swift object dictionary types swift3
您可以使用协议扩展您需要的所有类型,并且值具有该协议类型:
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)
]
【讨论】:
使用 Any :
var someObject : [String:Any] = [:]
【讨论】: