我正在尝试更改初始数组值,但不确定如何执行。
示例:
var players = ["Peter", "John", "Michael"]
var rules = ["\(players.randomElement()!) has to run", "\(players.randomElement()!) is the best"]
players.removeAll()
players.append("Gina", "Martin")
print(rules)
然后我要它打印Gina或Martin。
答案 0 :(得分:0)
这是因为规则不知道玩家改变了他们的价值观。您需要在更改播放器后重新设置规则,或打印播放器来代替规则
答案 1 :(得分:0)
如果希望每次访问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)