困惑于Swift数组声明
以下是否有区别?
-
var array1_OfStrings = [String]()
-
var array2_OfStrings: [String] = []
-
var array3_OfStrings: [String]
在Playgroundtesting显示1和2是相同的,但是3的行为不同。 有人能解释我的区别吗? 还有什么将是首选的方式来声明一个空的数组String
?
前两个有同样的效果。
-
声明一个variables
array1_OfStrings
,让它select自己的types。 当它看到[String]()
,它巧妙地知道它是string的types数组。 -
你设置variables
array2_OfStrings
为string的数组types,然后你说它是空的[]
-
这是不同的,因为你只是告诉你想
array3_OfStrings
是stringtypes的数组,但没有给它一个初始值。
我认为第一个build议是因为Swift编程语言更频繁地使用它。
虽然我可能会迟到,但有一点需要说明的。
首先将array1_OfStrings
设置为string数组
另一个选项告诉array1_OfStrings
是string数组,然后将其设置为空。
虽然这可能是一个非常小的差异,您将在编译时注意到它。 对于第一个选项,编译器会自动尝试找出array1_OfStrings
的types。 第二个选项不会那样做,你会让编译器知道这实际上是string数组并且完成了处理。
为什么这很重要? 看看下面的链接: https : //thatthinginswift.com/debug-long-compile-times-swift/
正如你所看到的,如果你没有声明可能会影响构build性能的variables的types。