好吧,假设我有一本字典:
var someDict = [String: String]()
我可以添加一个键和定义给它:
someDict["Smiling"] = ":)
但假设我想为 "Smiling"
添加另一个定义,例如 :D
。
someDict["微笑"]? += ":D"
print(someDict)
["Smiling": ":):D"]
现在我要的是
[“微笑”:“:)”,“:D”]
。我知道这行不通,因为 ,
分隔符。
所以我需要一种方法来使用 ["Smiling": [":)", ":D"]]
,这样我就可以通过 someDict["Smiling"][1]
,这将等于 :D
。
我不会列出我尝试过的,因为这些都是无用的,而且我不知道我在做什么。
总结一下,
我希望能够在字典中添加一个键,可能是在 for 循环中。
最佳答案
您只需要这种类型的数据格式:
var someDict = [String: [String]]()
初始化:
someDict["Smiling"] = [":)"]
这样你就可以这样做:
someDict["Smiling"]?.append(":D")
并称它为:
someDict["Smiling"]?[1] //returns ":D"
编辑:
可能值得一提的是,正如@dfri 所说,使用显式数组索引调用 ("[1]") 是不安全的,因为如果您的数组没有两个或更多值,这将失败。一种“Swifty”解决方案是通过检查无效索引是否在数组中来验证它。
这可能看起来像这样(感谢@Hamish 提供的代码):
let idx = 1
if let arr = someDict["Smiling"], arr.indices.contains(idx) {
print(arr[idx]) // :D
}
关于swift - 为单个键添加多个定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41660198/