extension Dictionary where Key: ExpressibleByStringLiteral, Value: Any {
func date(forKey key: String) -> Date? {
return self[key] as? Date
}
}
let dictionary: [String : Any] = ["mydate" : Date(), "otherkey" : "Rofl"]
dictionary.date(forKey:"mydate") // should return a Date? object
//我得到的错误不明确的参考成员“下标”如何扩展字典,允许使用下标与动态密钥?
我怎样才能让我的扩展让我给一个密钥,并用不带文字的下标,而是一个“动态”键字符串的形式?
只需用'key:Key'替换'key:String'。 – user28434
请注意,“Value:Any”是一个冗余约束。我也没有理由将'Key'限制为'ExpressibleByStringLiteral' - 如果'Key'不是'ExpressibleByStringLiteral',它会产生什么区别? – Hamish