以下代码摘自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")
//返回错误
为什么会这样?
答案 0 :(得分:0)
因为它知道第一项的类型。由于数组仅包含单一类型的对象,因此可以从第一项中获取该信息,就足够了。
您的评论如下:
我认为您对第一项感到困惑。 “橙色”是[Character]
的数组,因此当您使用Array("Oranges")
时,您正在创建一个字符数组。对于您的第三项,不要传递两个数组不知道如何处理的值,而应传递这样的数组:let list6 = Array(["Apples", "Oranges"])