Swift 将字典中的整数相加

Swift 将字典中的整数相加,swift,math,dictionary,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* } 任何帮助都会很感激也许我只是想得太多了 您可以使用reduce:combine:获得总和 使用Swift 2.0,将reduce:C

希望将字典中的整数相加。例如:

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的协议扩展中。因此,它适用于所有SequenceType,如数组、集合或字典

dictionary.reduce(0) {
    sum, item in
    return sum + item.1
}
闭包中的项是表示每个(键、值)对的元组。因此,item.0是键,其中as item.1是值。总和的初始值是0,然后每次迭代发生时,总和都被添加到从字典中提取的值中

dictionary.reduce(0) {
    sum, item in
    return sum + item.1
}
你也可以简写为

dictionary.reduce(0) { return $0 + $1.1 }
虽然Swift的旧版本,但它只有数组的reduce方法。所以,我们可以先得到数组,然后应用reduce:combined得到和

let a = dictionary.values.array.reduce(0) { return $0 + $1 }

[“A”:1,“B”:2,“C”:3]。映射{$1}.reduce(0,combine:+)@christianditerich,查看我的版本,仅使用reduce缩短。这似乎对我不起作用。表示我的字典类型没有名为reduce的成员。您使用的是哪个版本的Swift?@iNick,请参阅上面的更改。