约束此扩展的正确方法是什么?我的试验没有成功.
例如:
extension CollectionType where Generator.Element: [T.Key:Self.Value], T: DictionaryLiteralConvertible, T.Key: StringLiteralConvertible, T.Value: Encodable {
Run Code Online (Sandbox Code Playgroud)
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)
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |