【问题标题】:Error trying to perform addition using dictionary in swift [duplicate]尝试在 swift 中使用字典执行加法时出错 [重复]
【发布时间】:2017-07-22 22:44:42
【问题描述】:

快速自学我试图了解字典的工作原理。使用游乐场。我制作了一个名为“菜单”的简单字典,其中包含一个项目列表,其中名称为键,价格为值。像这样:

let menu = ["crisps": 2,
            "oranges": 3,
            "chicken": 8,
            "meat": 12]

然后,我尝试像这样添加这些项目的值:

let costOfMeal = menu["crisps"]! + menu["oranges"]! + menu["chicken"]! + menu["meat"]!

这给了我错误:对成员“+”的模糊引用

不知道发生了什么。任何输入表示赞赏。

谢谢,

大卫

【问题讨论】:

  • 这是一个从 Swift 3.1 开始修复的错误。

标签: swift dictionary key addition


【解决方案1】:
let costOfMeals = Array(menu.values).reduce(0, +)

您正在尝试将每个键和值加起来!您应该只将这些值相加。您知道字典是 Key 和 Value,您应该只将 Value 相加。

【讨论】:

  • 您不必将menu.values 包裹在新的Array
【解决方案2】:

这只是编译器的自动类型转换被多次添加的未包装选项弄糊涂了。

您可以通过在公式中添加一个实际整数来帮助它。

let costOfMeal =  0 + menu["crisps"]! + menu["oranges"]! + menu["meat"]! + menu["chicken"]!

不要让它打扰您,因为它与您要学习的内容无关,而且您的公式是正确的(尽管对生产不安全)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2015-11-03
    • 2013-09-11
    • 2018-03-18
    • 2017-03-17
    • 2023-03-06
    • 2020-09-28
    相关资源
    最近更新 更多