如何add/Update key/values in dict in swift?

How to add/Update key/values in dict in swift?

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 的新手,有人可以指导我解决这个问题并告诉我为什么会看到这个错误。

["DMC Global Inc"] 是一个包含字符串的数组文字。它的计算结果为 [String] 类型的值(a.k.a。Array<String>)。

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

去掉方括号即可。

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"]
]