Swift:为什么在创建空数组时需要空括号?

3 arrays initialization swift

为什么在定义空白数组后需要括号“()”?例如:

let emptyArray = [String]()
Run Code Online (Sandbox Code Playgroud)

但是当您使用具有预定义值的数组时,它不需要它们吗?

let populatedArray = ["Hello", "question"]
Run Code Online (Sandbox Code Playgroud)

Sul*_*han 6

您正在调用初始化程序,这类似于:

let object = MyObject()
Run Code Online (Sandbox Code Playgroud)

或者

let string = String()
Run Code Online (Sandbox Code Playgroud)

也可以写成

let array = Array<String>()
Run Code Online (Sandbox Code Playgroud)

当您使用预定义值时,类型是从数组项的类型推断出来的。对于空数组,没有项,因此必须明确指定类型。

另一种方法是:

let array: [String] = []
Run Code Online (Sandbox Code Playgroud)

或者

let array = [] as [String]
Run Code Online (Sandbox Code Playgroud)