这是声明数组和字典的更好方法,我使用过两者:
Array<String>
[String]
对我而言[String]
在编码方面非常快,但实际上两者在编译器和性能方面有何不同,我们应该遵循哪一个?
答案 0 :(得分:14)
来自Swift的iOS开发者库...
Swift数组的类型完全写为Array&lt;元素&gt;,其中 Element是允许存储数组的值的类型。您可以 还以速记形式将数组类型写为[Element]。 虽然两种形式功能相同,但速记形式 是优选的,并且在参考本指南时使用 数组的类型。
答案 1 :(得分:5)
这两者是等价的。
数组类型速记语法
Swift数组的类型完整地写为Array,其中Element是允许存储数组的值的类型。您还可以以简写形式将数组类型写为[Element]。 尽管这两种形式在功能上是相同的,但在提及数组类型时,最好使用简写形式,并在本指南中使用。
答案 2 :(得分:0)
我要注意的一个区别是,如果你试图实例化一个你需要指定模块的对象数组(因为命名冲突),速记形式似乎会窒息。
let array1 = [MyModule.MyClass]() // Compile error: Invalid use of '()' to call a value of non-function type '[MyClass.Type]'
let array2 = Array<MyModule.MyClass>() // Works as expected.
其他情况,例如可选展开或使用简写表示法作为参数输入工作。我只试过Swift 2.3