【发布时间】:2017-02-27 16:44:57
【问题描述】:
我有这个字典数组:
var dicts = [["key1": "value1", "key2": "value2"], ["key1": "value3", "key2": "value4"]]
我应该如何扩展Array 以便拥有这个功能:
dicts.values(of: "key1") // result: ["value1", "value3"]
我试试这个:
extension Array where Iterator.Element == [String: Any] { // ERROR!
func values(of key: String) -> [Any]? {
var result: [Any]?
for value in self {
let val = value as! Dictionary<String, Any>
for k in val.keys {
if k == key {
if result == nil {
result = [Any]()
}
result?.append(val[k])
break
}
}
}
return result
}
}
但我总是在extension Array 声明处标记错误:
错误:相同类型的要求使泛型参数“元素”非泛型
我应该怎么做才能修复这个错误?
用for value in self 迭代Array 是否正确?
谢谢
【问题讨论】:
标签: arrays dictionary swift3 extend