[String]和Array <string>之间的区别

时间:2015-12-12 13:53:22

标签: arrays swift

这是声明数组字典的更好方法,我使用过两者:

Array<String>

[String]

对我而言[String]在编码方面非常快,但实际上两者在编译器和性能方面有何不同,我们应该遵循哪一个?

3 个答案:

答案 0 :(得分:14)

来自Swift的iOS开发者库...

  

Swift数组的类型完全写为Array&lt;元素&gt;,其中   Element是允许存储数组的值的类型。您可以   还以速记形式将数组类型写为[Element]。   虽然两种形式功能相同,但速记形式   是优选的,并且在参考本指南时使用   数组的类型。

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html

答案 1 :(得分:5)

这两者是等价的。

From Apple

数组类型速记语法

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