好吧,假设我有一本字典:
var someDict = [String: String]()
我可以添加一个键和定义:
someDict["Smiling"] = ":)
但是假设我想给"Smiling"添加另一个定义,比如:D
someDict["Smiling"]? += ":D"

print(someDict)
["Smiling": ":):D"]

现在我想要的是
["Smiling": ":)", ":D"]。我知道这是行不通的,因为分离器。
所以我需要一种使用,的方法,我可以用["Smiling": [":)", ":D"]]访问它,这等于someDict["Smiling"][1]
我不会列出我曾经尝试过的东西,因为这些都是无用的,我不知道我在做什么。
总而言之,
我希望能够在字典中添加一个键,可能是在for循环中。

最佳答案

您需要的只是这种类型的数据格式:

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

初始化它:
someDict["Smiling"] = [":)"]

这样你就可以做到:
someDict["Smiling"]?.append(":D")

并称之为:
someDict["Smiling"]?[1] //returns ":D"

编辑:
可能值得一提的是,正如@dfri所说,使用显式数组索引调用(“[1]”)是不安全的,因为如果数组没有两个或更多的值,那么这将失败。一个“快速”的解决方案是通过检查无效索引是否在数组中来验证它。
这可能看起来像这样(感谢@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/

10-10 15:30