2017-01-02 79 views
2

,我们可以创建一个空数组是这样的:我们为什么要加()当我们创建一个空数组

var newArray1 = [Int]() 

我的意思是:是什么“()”在这里是指当我们创建一个新的数组,为什么不难道我们只是写这篇创建一个新的空数组:

var newArray2 = [Int] 

我知道它的语法,但有人可以解释这一点帮我深刻地理解它。

+0

另一种创建空数组的方法是指定类型,然后用空数组文本初始化它:'var newArray1:[Int] = []'。 – vacawama

+0

你也可以'var newArray1 = []作为[Int]'。 – vacawama

+0

@vacawama不要。这太简单了。 – Alexander

回答

5

要创建一个新阵列,您可以使用Array<Int>.init()。调用初始化程序的简写是删除.initArray<Int>()

[Int]Array<Int>的简称。

把两者放在一起,我们可以写Array<Int>.init()[Int]()

+0

如何理解“var b:[Int] = Array()”和“var c:[Int] = []”之间的区别,为什么我们可以将“Array()”更改为“[]” – user7341005

+0

因为您已经使用类型注释':[Int]'指定了类型,编译器可以推断'[]'是一个空的数组文本,其中包含no '诠释' – Alexander

+0

你怎么知道这一切?你能为我推荐一些文件吗? – user7341005

2

区别在于[Int]声明了一个类型(Integer的数组),而[Int]()是对相同类型的初始值设定项的调用。这是两个根本不同的操作。在例如Scala可以用相同的方式编写(因为scala允许你省略没有参数的方法的括号),但是在Swift中这是不允许的。

+0

'... = [Int]'不*声明*类型。这不是声明,而是分配。如果有的话,分配类型将需要'... = [Int] .self' – Alexander

相关问题