为什么在Swift中创建默认值数组时不需要<element>?

时间:2018-08-11 10:59:24

标签: ios arrays swift

以下代码摘自Apple文档的 Swift编程语言(Swift 4.2)

现在考虑一下:有3种方法可以在Swift中创建一个空数组。

第一:

var list1 = Array<String>()

第二:

var list2: [String] = []

第三:

var list3 = [String]()

为了创建默认值数组,我们使用repeating:count:

var list4 = Array(repeating: "Apples", count: 3)

上面的数组是使用数组创建的第一种形式创建的,但是,为什么不需要在<Element>初始化程序旁边声明Array

尝试创建普通的空数组而不指定<Element>内部的类型会触发运行时错误。

var list5 = Array("Apples") // A,p,p,l,e,s

var list6 = Array("Apples", "Oranges") //返回错误

为什么会这样?

1 个答案:

答案 0 :(得分:0)

因为它知道第一项的类型。由于数组仅包含单一类型的对象,因此可以从第一项中获取该信息,就足够了。

您的评论如下:  我认为您对第一项感到困惑。 “橙色”是[Character]的数组,因此当您使用Array("Oranges")时,您正在创建一个字符数组。对于您的第三项,不要传递两个数组不知道如何处理的值,而应传递这样的数组:let list6 = Array(["Apples", "Oranges"])