【发布时间】:2014-07-19 14:07:02
【问题描述】:
因此,在 Swift 中,数组和可变数组之间没有明显区别,但 Apple 文档说,当您知道元素的数量时,使用不可变数组总是更好。假设我想创建一个 Hi 类型的不可变数组,其中包含 x 个不同的 Hi 类型元素。
我可以这样做,但它会为数组中的每个元素分配相同的实例
var array = [Hi](count: x, repeatedValue: Hi())
我可以这样做,但数组中的元素是允许的,因此不可编辑
var array = [Hi](count: x, repeatedValue: nil)
for hi in array {
hi = Hi()
}
是否有 Array 的构造函数接受闭包,以便我可以告诉它如何制作每个元素?
【问题讨论】:
-
hi = Hi()没有任何意义,hi是一个局部变量,需要赋值给array[i]。for i in 0..x { array[i] = Hi() } -
它在一个循环遍历数组的for in循环中
-
您的循环遍历数组的 contents。您需要遍历数组的索引。
-
另外,您不能将数组的内容初始化为
nil,因为这些值不是optional值。