0

让我创建这 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]()]
4

1 回答 1

1

您可以像这样创建一个空的字典数组:

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

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

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

var myArray = [animal1, animal2, animal3]

也是。


看到你所有的字典键都是一样的,你真的应该为此创建一个自定义结构:

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

你的数组可以是:

var myArray= [Animal]()
于 2019-11-22T07:43:39.053 回答