Swift 在For循环中添加到字典
我在树屋的一个项目中与swift游乐场合作。在for循环中向字典添加额外的key:value对时遇到了问题。以下是我的代码:Swift 在For循环中添加到字典,swift,loops,dictionary,for-loop,Swift,Loops,Dictionary,For Loop,我在树屋的一个项目中与swift游乐场合作。在for循环中向字典添加额外的key:value对时遇到了问题。以下是我的代码: var counter = 0 for (var player) in experiencedPlayers { counter += 1 if counter % 3 == 0 { for team in 1...3 { switch team { case 1: teamSharks.ap
var counter = 0
for (var player) in experiencedPlayers {
counter += 1
if counter % 3 == 0 {
for team in 1...3 {
switch team {
case 1:
teamSharks.append(player)
player["Team"] = "Sharks"
case 2:
teamDragons.append(player)
player["Team"] = "Dragons"
case 3:
teamRaptors.append(player)
player["Team"] = "Raptors"
default: break
}
}
}
}
此方法不会出错,但应该在玩家字典中添加“团队”:“鲨鱼”等,但事实并非如此。有什么建议吗?在添加
player
之前,您需要修改player
switch team {
case 1:
player["Team"] = "Sharks"
teamSharks.append(player)
case 2:
player["Team"] = "Dragons"
teamDragons.append(player)
case 3:
player["Team"] = "Raptors"
teamRaptors.append(player)
default: break
}
}
这是因为player
是一种值类型
请注意,这不会对存储在
ExperiencePlayer
中的数据产生任何影响,仅对teamSharks
等数组中的数据产生任何影响。,因为玩家仅在for..in中声明在范围内。所以,一旦你试图修改它,它将只在这个范围内工作,就像一个副本。如果你想修改,你需要在你的ExperiencedPlayer中重新分配你的玩家使用你修改过的对象但是你用“猛禽”覆盖了“团队”的价值。每次你做player[“Team”]=“NewValue”时,你都在取代以前的价值。