为数组中所有对象的属性设置相同值的最佳方法

时间:2018-08-23 15:41:06

标签: arrays swift sequence

class Cell {
    var isSelected = true
}
var array: [Cell] = [Cell(), Cell(), Cell()]

现在,我想将数组中所有对象的isSelected属性设置为'false'。

我们可以通过for循环来实现,也可以使用map来实现

_ = array.map {$ 0.isSelected.true}

但是我认为对此会有更好的解决方案。

1 个答案:

答案 0 :(得分:1)

如果您的类是结构,则可以在数组初始化期间执行此操作:

var array = Array(repeating: Cell(isSelected: false), count: 3)

从技术上讲,您可以使用一个类来完成此操作,但是首先您需要添加一个适当的init(这很容易),其次(大问题)您将最终获得3个对单个实例的引用。数组中的类,可能不是您想要的。

如果您确实需要一个类而不是一个结构,那么使用forEach是访问数组中每个元素的正确方法。 map不是正确的解决方案。

array.forEach { $0.isSelected = false }
相关问题