从字典中添加整数

时间:2015-06-19 16:48:28

标签: swift math dictionary

希望将字典中的整数添加到一起。例如:

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*
 }

任何帮助都会被赞赏,也许我只是在想这个?

1 个答案:

答案 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 }