将字典项追加到Array <Dictionary <String,String >>

时间:2019-11-22 07:37:22

标签: swift

让我创建以下3个字典:

var animal1 = ["name":"lion", "footCount":"4", "move":"run"]
var animal2 = ["name":"Fish", "footCount":"0", "move":"swim"]
var animal3 = ["name":"bird", "footCount":"2", "move":"fly"]

然后让我创建这个数组:

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

然后让我将上述字典附加到myArray中

myArray.append(animal1)
myArray.append(animal2)
myArray.append(animal3)

如果我运行以下代码,我会看到4个项目

print(myArray.count)

因为该数组是用一个空项目创建的:var myArray= [[String : String]()] 所以我需要一直使用以下代码:

myArray.removeFirst()

我的问题是: 是否有另一种可选的数组定义来附加上述字典?因为如果使用此数组定义,必须始终执行上述代码:

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

1 个答案:

答案 0 :(得分:1)

您可以创建一个空的字典数组,如下所示:

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

请注意,()在外部[]之外。尝试[String : String]()]是一个数组文字,其中包含一个空字典的一个元素,而您应该为[[String : String]](也称为Array<Dictionary<String, String>>)数组类型调用初始化程序。

既然您已经在数组中拥有了所有想要的元素,则可以这样做:

var myArray = [animal1, animal2, animal3]

也是。


尽管看到所有字典键如何相同,您应该为此真正创建一个自定义结构:

struct Animal {
    let name: String
    let footCount: Int
    let move: String
}

您的数组可以是:

var myArray= [Animal]()