【问题标题】:Swift - dictionary with array - get reference to array [duplicate]Swift - 带有数组的字典 - 获取对数组的引用[重复]
【发布时间】:2018-11-22 18:16:11
【问题描述】:

我目前有这个代码:

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

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

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

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

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

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

【问题讨论】:

  • 提示:你不应该在 Swift if (dictKeyVal != nil) 中这样做。

标签: arrays swift dictionary


【解决方案1】:

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

var dic = [String: [String]]()
dic[key, default: []].append(m)

【讨论】:

  • 默认应为 [m]
  • @JoakimDanielson 不,如果key 没有价值,这将导致dic[key] = [m,m] 而不是所需的dic[key] = [m]
  • 对不起,我明白了。顺便说一句,整洁的解决方案。
猜你喜欢
  • 2015-10-05
  • 1970-01-01
  • 2021-01-12
  • 2023-03-07
  • 2017-12-29
  • 2015-05-10
  • 1970-01-01
  • 2016-07-25
相关资源
最近更新 更多