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
。我会读的。