【发布时间】:2015-12-12 13:53:21
【问题描述】:
声明Array和Dictionary哪个更好,我都用过:
Array<String>
[String]
对我来说[String] 在编码方面非常快,但实际上两者在编译器和性能方面有何不同,我们应该遵循哪一个?
【问题讨论】:
声明Array和Dictionary哪个更好,我都用过:
Array<String>
[String]
对我来说[String] 在编码方面非常快,但实际上两者在编译器和性能方面有何不同,我们应该遵循哪一个?
【问题讨论】:
来自 Swift 上的 iOS 开发者库...
Swift数组的类型全写为Array
,其中 元素是允许数组存储的值的类型。你可以 还将数组的类型以简写形式写为 [Element]。 虽然这两种形式在功能上是相同的,但简写形式 是首选,在本指南中提及 数组的类型。
【讨论】:
两者是等价的。
数组类型简写语法
Swift 数组的类型全写为 Array,其中 Element 是数组允许存储的值的类型。您还可以将数组的类型以简写形式写为 [Element]。 虽然这两种形式在功能上相同,但首选简写形式,并在本指南中用于指代数组的类型。
【讨论】:
我会注意到一个区别是,如果您尝试实例化需要指定模块的对象数组(因为命名冲突),速记形式似乎会窒息。
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 中尝试过
【讨论】:
.self。如果仍然存在问题,您应该在 bugs.swift.org 提交错误