Ios 字典中键的新值和上一个值之和
我有以下模型游戏>助手贡献。我有一系列的游戏和助手贡献。助手贡献有助手计数和玩家名称 每场比赛我都要得到所有助攻。我会检查每场比赛的所有助攻,并创建一个字典。我有以下逻辑,创建一个字典,其中将有球员的名字和他的总助攻数。我想知道,在第一场比赛后设置字典时,如果玩家在第二场比赛中有另一个辅助计数,它将与前一场比赛的值相加,我怎么能做到这一点Ios 字典中键的新值和上一个值之和,ios,swift,Ios,Swift,我有以下模型游戏>助手贡献。我有一系列的游戏和助手贡献。助手贡献有助手计数和玩家名称 每场比赛我都要得到所有助攻。我会检查每场比赛的所有助攻,并创建一个字典。我有以下逻辑,创建一个字典,其中将有球员的名字和他的总助攻数。我想知道,在第一场比赛后设置字典时,如果玩家在第二场比赛中有另一个辅助计数,它将与前一场比赛的值相加,我怎么能做到这一点 func GetTotalAssist{ print("Pressed") var
func GetTotalAssist{
print("Pressed")
var dic : [String:Int] = [:]
for game in games{
guard let assists = game.assists?.array as? [AssistsContributions] else {return}
for element in assists {
guard let playerName = element.joueurs?.name else { return }
let assistCount = element.assistsContribution
dic[(playerName)] = 0
// dic[(playerName)]! += Int(assistCount)
if dic[(playerName)] != nil {
dic[(playerName)]! += Int(assistCount)
} else {
dic[(playerName)]! = Int(assistCount)
}
}
print(dic)
}
}
您希望玩家的辅助计数默认为
0
,然后您希望为每场游戏更新该值。这是一个完美的字典查找方法用例:
func GetTotalAssist{
print("Pressed")
var dic : [String:Int] = [:]
for game in games {
guard let assists = game.assists?.array as? [AssistsContributions] else {return}
for element in assists {
guard let playerName = element.joueurs?.name else { return }
let assistCount = element.assistsContribution
dic[playerName, default: 0] += Int(assistCount)
}
print(dic)
}
}
第一次看到新的playerName
时,它不会出现在dic
中,因此将使用默认值:
值0
。如果存在值,则将检索该值。在任何一种情况下,该值都将增加新的assistCount
。这将把playerName
添加到dic
,如果它以前不存在
注意:在您编写的两条
guard
语句中,一旦遇到guard
失败的情况,它们将从函数返回。这里要做的一件更好的事情可能是通过将return
替换为来转到for
循环的下一次迭代。guard let。。。else{return}
。这可能是作者的错误,但请改为继续?这是一个很好的观点,@Larme。我没看那部分代码,谢谢。我第一次看到Continue
。我会读的。