使用Swift 2.2扩展字典数组

Lau*_*ent 1 swift swift2.2

约束此扩展的正确方法是什么?我的试验没有成功.

例如:

extension CollectionType where Generator.Element: [T.Key:Self.Value], T: DictionaryLiteralConvertible, T.Key: StringLiteralConvertible, T.Value: Encodable {
Run Code Online (Sandbox Code Playgroud)

Leo*_*bus 5

Xcode 8 beta•Swift 3

protocol Encodable {
    var hashValue: Int { get }
}
extension Int: Encodable { }

extension Collection where Iterator.Element == [String: Encodable] {
    var total: Int {
        return reduce(0) {$0 + $1.values.reduce(0) {$0 + $1.hashValue}}
    }
}

let dictionaries:[[String: Encodable]]  = [["One":1],["Two":2],["Three":3, "Four":4]]

dictionaries.total  // 10
Run Code Online (Sandbox Code Playgroud)

Xcode 7.3.1•Swift 2.2.1

protocol Encodable {
    var hashValue: Int { get }
}

extension Int: Encodable { }

extension CollectionType where Generator.Element == [String: Encodable] {
    var total: Int {
        return reduce(0) {$0 + $1.values.reduce(0) {$0 + $1.hashValue}}
    }
}

let dictionaries:[[String: Encodable]]  = [["One":1],["Two":2],["Three":3, "Four":4]]

dictionaries.total  // 10
Run Code Online (Sandbox Code Playgroud)