我试着四处寻找这是什么
[]()
但我不太确定。在操场上,我这样做了:
var test = [Int]();
test.append(1);
test.append(2);
如果我离开()并执行
var test = [Int];
test.append(1);
test.append(2);
对我来说它看起来像是一堆Ints。有人可以解释这个区别吗?提前致谢。
答案 0 :(得分:4)
Type()
表示“致电init()
” - 即创建Type
的新实例。
[Int]
是一种类型,例如String
。 [Int]
表示“array-of-Int”。
String()
创建一个新的空String实例。 [Int]()
创建一个新的空数组实例。
您可以将变量声明为array-of-Int类型。或者您可以创建并分配一个新的Int-array实例。你在这做什么:
var test = [Int]()
但是如果没有进一步的语法,你就无法为变量赋值。因此,这是非法的:
var test = [Int]
EXTRA for experts
你可以说:
var test = [Int].self
将类型分配给变量!这不太可能是你想要的,因为现在你没有阵列;你有一个类型,作为对象!!
答案 1 :(得分:0)
[Type]
是Array<Type>
的语法糖,因此它表示数组类型,它是一个通用结构,并为其指定它所包含的元素类型(Int
例如)
所以区别:
[Int]
和
[Int]()
与
相同Array<Int>
和
Array<Int>()
第一种只是一种类型,在声明变量或函数参数时可以使用。
第二个调用该类型的无参数构造函数,即创建该类型的实例。