swift - 将字典中的整数相加

标签 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: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/

相关文章:

android - android 中的离线 map

java - 在 Java 中按日期键对 map 进行排序

ios - 第一次每次快速解析时对象 id nil

c# - 从 Kinect 传感器数据计算 BPM

java - 如何以高效的方式检查乘法溢出?

c++ - 3d 相机 - 如何改变相机方向?

python - 将 dataframe 转换为字典,但不将列名作为 python 中的键

ios - iOS 中的 Firebase 云消息传递有问题吗?

swift - 运算符的结果 - 未使用 swift reduce

swift - iOS swift : Install and Unistall views programmatically