Swift中[]和[]()之间的差异

wljmcqd8  于 2023-02-07  发布在  Swift
关注(0)|答案(2)|浏览(169)

我试着四处寻找这是什么

[]()

但我不太确定。在操场上,我做了这个:

var test = [Int]();
test.append(1);
test.append(2);

如果我省略()并执行

var test = [Int];
test.append(1);
test.append(2);

在我看来,它仍然像一个整数数组。有什么区别吗?

c86crjj0

c86crjj01#

Type()意味着“调用init()“-即创建Type的新示例。
[Int]是一个类型,类似于String[Int]表示“整数数组”。
String()创建一个新的空String示例。[Int]()创建一个新的空Int数组示例。
你可以将一个变量声明为整型数组类型,或者创建并赋值一个新的整型数组示例,这就是你在这里所做的:

var test = [Int]()

但是如果没有进一步的语法,你就不能给变量赋值,因此这是非法的:

var test = [Int]

Maven额外费用

你可以说:

var test = [Int].self

它 * 确实 * 为变量赋值了类型!这不太可能是你在这里想要的,因为现在你没有数组了;你有一个类型,它本身,作为对象!!

fzsnzjdm

fzsnzjdm2#

[Type]Array<Type>的语法糖,因此它表示数组类型,数组类型是一个泛型结构体,您可以为它指定所包含的元素类型(本例中为Int
所以两者的区别是:

[Int]

以及

[Int]()

与相同

Array<Int>

以及

Array<Int>()

第一种类型只是一种类型,可以在声明变量或函数参数时使用。
第二个调用该类型的无参数构造函数,即创建该类型的示例。

相关问题