尝试使用 swift 中的字典执行加法时出错
Error trying to perform addition using dictionary in swift
自学 swift 我正在尝试了解词典的工作原理。使用游乐场。我制作了一个名为 "menu" 的简单字典,其中包含以名称作为键、以价格作为值的项目列表。像这样:
let menu = ["crisps": 2,
"oranges": 3,
"chicken": 8,
"meat": 12]
然后,我尝试像这样添加这些项目的值:
let costOfMeal = menu["crisps"]! + menu["oranges"]! + menu["chicken"]! + menu["meat"]!
这给了我错误:对成员“+”的引用不明确
不确定发生了什么。任何意见表示赞赏。
谢谢,
大卫
let costOfMeals = Array(menu.values).reduce(0, +)
您正在尝试将每个键和值加在一起!您应该只将值相加。你知道字典是 Key 和 Value,你应该只把 Value 加起来。
这只是编译器的自动类型转换被多次添加的未包装的可选值搞糊涂了。
您可以通过在公式中添加一个实际整数来帮助它。
let costOfMeal = 0 + menu["crisps"]! + menu["oranges"]! + menu["meat"]! + menu["chicken"]!
不要让它打扰您,因为它与您要学习的内容无关,而且您的公式是正确的(尽管对生产不安全)。
自学 swift 我正在尝试了解词典的工作原理。使用游乐场。我制作了一个名为 "menu" 的简单字典,其中包含以名称作为键、以价格作为值的项目列表。像这样:
let menu = ["crisps": 2,
"oranges": 3,
"chicken": 8,
"meat": 12]
然后,我尝试像这样添加这些项目的值:
let costOfMeal = menu["crisps"]! + menu["oranges"]! + menu["chicken"]! + menu["meat"]!
这给了我错误:对成员“+”的引用不明确
不确定发生了什么。任何意见表示赞赏。
谢谢,
大卫
let costOfMeals = Array(menu.values).reduce(0, +)
您正在尝试将每个键和值加在一起!您应该只将值相加。你知道字典是 Key 和 Value,你应该只把 Value 加起来。
这只是编译器的自动类型转换被多次添加的未包装的可选值搞糊涂了。
您可以通过在公式中添加一个实际整数来帮助它。
let costOfMeal = 0 + menu["crisps"]! + menu["oranges"]! + menu["meat"]! + menu["chicken"]!
不要让它打扰您,因为它与您要学习的内容无关,而且您的公式是正确的(尽管对生产不安全)。