希望将字典中的整数相加。例如:
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*
}
如果我能提供任何帮助,我将不胜感激,也许我只是想太多了?
最佳答案
您可以使用reduce:combine:来获得总和。
在 Swift 2.0 中,reduce:Combine: 被添加到 SequenceType 的协议(protocol)扩展中。因此,它适用于所有 SequenceType,如数组、集合或字典。
dictionary.reduce(0) {
sum, item in
return sum + item.1
}
闭包内的项目是表示每个(键,值)对的元组。因此,item.0 是 key,而 item.1 是 value。sum 的初始值为 0,然后每次迭代时,sum 都会添加到从字典中提取的值中。
您也可以将其简写为,
dictionary.reduce(0) { return $0 + $1.1 }
虽然旧版本的 Swift,它只有数组的reduce 方法。因此,我们可以首先获取数组并应用reduce:combine 来获得总和,
let a = dictionary.values.array.reduce(0) { return $0 + $1 }
关于swift - 将字典中的整数相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30943281/