Swift - 带有数组的字典 - 获取对数组的引用

Mar*_*rry 0 arrays dictionary swift

我目前有这个代码:

var dic = [String: [String]]() 

if (dic.index(forKey: key) != nil){
    dic[key]?.append(m)
}
else {
    dic[key] = [m]
}
Run Code Online (Sandbox Code Playgroud)

但是,在dic.index(forKey: key)dic[key]?.append(m)我计算了两次密钥。

有没有可能做这样的事情?:

var dictKeyVal = &dic[key]
if (dictKeyVal != nil) {
    dictKeyVal?.append(m)
}
else {
    dic[key] = [m]
} 
Run Code Online (Sandbox Code Playgroud)

如果没有键,我在键或 nil 处获取对数组的引用

Dáv*_*tor 5

您可以简单地为下标使用默认值,您的整个代码将简化为:

var dic = [String: [String]]()
dic[key, default: []].append(m)
Run Code Online (Sandbox Code Playgroud)