【问题标题】:How to add/Update key/values in dict in swift?如何在 swift 中添加/更新 dict 中的键/值?
【发布时间】:2021-07-13 23:58:43
【问题描述】:
func exercise() {

    
    var stockTickers: [String: String] = [
        "APPL" : "Apple Inc",
        "HOG": "Harley-Davidson Inc",
        "BOOM": "Dynamic Materials",
        "HEINY": "Heineken",
        "BEN": "Franklin Resources Inc"
    ]
    
    
    stockTickers["WORK"] = ["Slack Technologies Inc"]
    stockTickers["BOOM"] = ["DMC Global Inc"]


  
     
    print(stockTickers["WORK"]!)
    print(stockTickers["BOOM"]!)
}

错误:无法将“[String]”类型的值分配给“String”类型的下标

我不明白这个错误,我是 swift 新手,谁能指导我完成这个并告诉 mw 为什么我看到这个错误。

【问题讨论】:

标签: swift dictionary key


【解决方案1】:

Alexander 用抽象的术语解释了您需要做什么。 (已投票)

具体来说,改变

stockTickers["WORK"] = ["Slack Technologies Inc"]
stockTickers["BOOM"] = ["DMC Global Inc"]

stockTickers["WORK"] = "Slack Technologies Inc"
stockTickers["BOOM"] = "DMC Global Inc"

表达式["Slack Technologies Inc"] 定义了一个包含单个字符串的字符串数组。那不是你想要的。你定义了一个[String:String]类型的字典

如果您希望字典具有包含字符串数组的字符串键和值,则必须更改声明字典的方式:

var stockTickers: [String: [String]] = [
    "APPL" : ["Apple Inc"],
    "HOG": ["Harley-Davidson Inc"],
    "BOOM": ["Dynamic Materials"],
    "HEINY": ["Heineken"],
    "BEN": ["Franklin Resources Inc"]
]

【讨论】:

    【解决方案2】:

    ["DMC Global Inc"] 是一个包含字符串的数组字面量。它评估为[String](又名Array<String>)类型的值。

    因此错误是有道理的:你试图在一个只需要一个字符串的地方分配一个字符串数组。

    只需删除方括号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多