[英]Change initial array value Swift
我正在嘗試更改初始數組的值,但是我不確定如何做到這一點。
例:
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。
這是因為規則不知道玩家改變了他們的價值觀。 您需要在更改播放器后重新設置規則或打印播放器(而不是規則)
如果希望每次訪問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)
或者,如果您只是想在players
器更新時基於新players
自動刷新rules
,則可以向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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.