Как обновить значение c для всех объектов в массиве? стриж - PullRequest
0 голосов
/ 27 января 2020

Допустим, у меня уже есть массив ViewHolder, равный viewHolderList: [ViewHolder]. Я хочу, чтобы все isMarried поля объектов были " false " в одной строке без зацикливания. Это возможно?

struct ViewHolder{
    var name: String?
    var age: Int?
    var isMarried: Bool = true
}

1 Ответ

4 голосов
/ 27 января 2020

Вам просто нужно перебрать ваш массив indices с помощью метода forEach и использовать индекс массива для обновления его свойства элемента:

struct ViewHolder {
    let name: String
    let age: Int
    var isMarried: Bool
}

var viewHolders: [ViewHolder] = [.init(name: "Steve Jobs", age: 56, isMarried: true),
                                 .init(name: "Tim Cook", age: 59, isMarried: true)]


viewHolders.indices.forEach {
    viewHolders[$0].isMarried = false
}

viewHolders  // [{name "Steve Jobs", age 56, isMarried false}, {name "Tim Cook", age 59, isMarried false}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...