让我创建以下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]()]
答案 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]()