希望将字典中的整数添加到一起。例如:
var dictionary = ["one": 1, "two": 2, "three": 3, "four": 4, "five": 5]
我希望获得1 + 2 + 3 + 4 + 5 = 15
的总和我知道它可能需要一个类似
的循环 for (n, i) in dictionary {
*some math function*
}
任何帮助都会被赞赏,也许我只是在想这个?
答案 0 :(得分:2)
您可以使用reduce:combine:来获得总和。
使用Swift 2.0,reduce:Combine:被添加到SequenceType的协议扩展中。因此,它可用于所有SequenceType,如Array,Set或Dictionary。
dictionary.reduce(0) {
sum, item in
return sum + item.1
}
闭包内的项是表示每个(键,值)对的元组。因此,item.0是关键,其中item.1是value。总和的初始值是0,然后每次迭代发生时,sum被添加到从字典中提取的值。
您也可以简写为
dictionary.reduce(0) { return $0 + $1.1 }
虽然旧版本的Swift,它只有使用Array的reduce方法。所以,我们可以先得到数组并应用reduce:combine来得到总和,
let a = dictionary.values.array.reduce(0) { return $0 + $1 }