swift - 添加字典 swift 3 中包含的 double

标签 swift dictionary double swift3

我正在学习一些关于 Swift 的知识,并且正在学习 Udemy 类(class)。该类(class)是用 swift 2 教授的,我使用的是 swift 3,所以我希望了解输出的差异,但到目前为止我在网上找不到任何答案。
我有一个字典项目,其中包含 3 个东西。

var menu = ["entre" : 5.55, "main-meal": 20.50, "desert": 5.50]

想法是使用 instructors 输出将 3 个值相加(在 swift 2 中工作正常):

var totalCost = menu["entre"]! + menu["desert"]! + menu["main-meal"]!

在类(class)中,这工作得很好,但对我来说,它会抛出一个错误,内容为“无法为类型为‘inout [String : Double]’(又名‘inout Dictionary’)的值下标”

我觉得很奇怪的是,如果我只使用 2 个值,一切都很好,问题是当添加第三个值时。我可以通过在末尾添加 + 0.0 来解决这个问题,如下所示:

var totalCost = menu["entre"]! + menu["desert"]! + menu["main-meal"]! + 0.0

我希望了解这两个版本之间的区别是什么,理想情况下我在没有解决方法的情况下将 3 个版本加在一起时做错了什么。

提前致谢。

最佳答案

解决方法

几个键

let (entreCost, desertCost, mainCost) = (menu["entre"]!, menu["desert"]!, menu["main-meal"]!)

let totalCost = entreCost + desertCost + mainCost

对于很多键

let keysToSum = ["entre", "desert", "main-meal"]
keysToSum.map{ menu[$0]!}.reduce(0, +)

对于所有键

menu.values.reduce(0, +)

关于swift - 添加字典 swift 3 中包含的 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40415064/

相关文章:

ios - 在 iOS 中出现键盘时滑动 UIView

ios - 如何为 i386 和 x86_64 架构构建 Cocoa Touch Framework?

python - 计算字典列表中的公共(public)键值对

java - 如何在java中从 double 组创建char数组?

swift - 基于 View 的 NSTableView 中的拖放问题

swift - 在没有 Storyboard的情况下将 ViewController 添加到应用程序

c# - 这个非锁定的 TryGetValue() 字典访问线程安全吗?

python - 嵌套字典和列表的大小

java - 在 Java 中向 MatOfPoint 变量添加值

java - JTable 中的问题格式化字段 - Integer 和 Double 之间的区别