在 swift 中将多个值添加到单个键中?

Adding multiple values into a single key in swift?

当我尝试向该键添加多个值时,我的值被我分配给该键的最后一个值覆盖。我尝试在 [String: [String]] 键值对的值 String 之间添加括号。我这样做是为了希望达到向该键添加多个值的效果。

import UIKit

var parent = [String: [String]]()
parent["parent"] = ["Tommy Turner", "Wolfgang Motart"]
parent["parent"] = ["Bobby Bushe"]
print(parent)

// How can I add multiple values into the parent key like this:
//      ["parent": "Tommy Turner", "Wolgang Motart", "Bobby Bushe"]

为什么不把[string]合并赋值给key:

var parent = [String: [String]]()
let value = ["Tommy Turner", "Wolfgang Motart"] + ["Bobby Bushe"]
parent["parent"] = value
print(parent) // ["parent": ["Tommy Turner", "Wolfgang Motart", "Bobby Bushe"]]

您正在覆盖此键值对中 "parent" 的键。如果您希望它具有这三个名称,只需将所有三个名称放入数组中即可。

parent["parent"] = ["Name", "name", "nombre"]

如果您要在范围外创建数组,并设置 "parent"

的值
var namesArray = ["Name", "name"]
parent["parent"] = namesArray
namesArray.append("nombre")

它仍然只会打印出["Name", "name"]。但是,如果您要调用

parent["parent"] = namesArray 

同样,它会创建你想要的。

您应该在之前的基础上添加新数组,例如:

var parent = [String: [String]]()
parent["parent"] = ["Tommy Turner", "Wolfgang Motart"]
parent["parent"] = (parent["parent"] ?? []) + ["Bobby Bushe"]
print(parent)

由于parent["parent"]的类型是字符串数组,您可以使用append函数添加一个或多个元素。试试这个。

var parent = [String: [String]]()
parent["parent"] = ["Tommy Turner", "Wolfgang Motart"]
parent["parent"]?.append("bob") // append one element to become ["Tommy Turner", "Wolfgang Motart", "bob"]
parent["parent"]?.appendContentsOf(["hello", "world"]) // append collection
print(parent["parent"]!) // ["Tommy Turner", "Wolfgang Motart", "bob", "hello", "world"]