如何在swift中创建具有相同类的不同实例的不可变数组

时间:2014-07-19 14:07:03

标签: arrays swift xcode6

所以在swift中,Array和一个可变数组之间没有明显的区别,但Apple文档说当你知道元素的数量时,使用不可变数组总是更好。所以说我想制作一个Hi类型的不可变数组,它有x个不同的Hi类型元素。

我可以这样做但它会为数组中的每个元素分配相同的实例

var array = [Hi](count: x, repeatedValue: Hi())

我可以这样做但是数组中的元素是let,因此不可编辑

var array = [Hi](count: x, repeatedValue: nil)
for hi in array {
hi = Hi()
}

是否有一个Array的构造函数,它接受一个闭包,所以我可以告诉它如何制作每个元素?

1 个答案:

答案 0 :(得分:2)

作为表达,简单地说:

[Int](count: x, repeatedValue: 0).map { _ in Hi() }

或更简洁,正如@vacawama和使用Range.map

所建议的那样
(1...x).map { _ in Hi() }