Вам нужно сделать rules
вычисляемым свойством, если вы хотите, чтобы оно выбирало новое player
каждый раз, когда вы получаете доступ к rules
.
var players = ["Peter", "John", "Michael"]
var rules: [String] {
return ["\(players.randomElement()!) has to run", "\(players.randomElement()!) is the best"]
}
players.removeAll()
players.append("Gina", "Martin")
print(rules)
Или, если вы просто хотите автоматически обновить rules
на основе нового players
, если обновлено players
, вы можете добавить наблюдателя свойства в players
.
var rules = [String]()
var players = ["Peter", "John", "Michael"] {
didSet {
if players.count > 0 {
rules = ["\(players.randomElement()!) has to run", "\(players.randomElement()!) is the best"]
} else {
rules = []
}
}
}
rules = ["\(players.randomElement()!) has to run", "\(players.randomElement()!) is the best"]
print(rules)
players.removeAll()
players.append(contentsOf: ["Gina", "Martin"])
print(rules)