为了账号安全,请及时绑定邮箱和手机立即绑定

如何更新地图中的结构属性

如何更新地图中的结构属性

Go
慕妹3146593 2023-06-12 17:14:41
目前正在努力学习围棋。我有以下功能,但它仅在团队不存在于地图中并在地图中创建新记录时才有效。如果团队在地图中已有结构,则不会更新值。func AddLoss(teamMap map[string]TeamRow, teamName string) {    if val, ok := teamMap[teamName]; ok {        val.Wins++        val.GamesPlayed++    } else {        newTeamRow := TeamRow{Losses: 1}        teamMap[teamName] = newTeamRow    }}我已经更新了函数以仅用具有我想要的值的全新结构替换现有记录,但是我无法更新地图中的值似乎很奇怪。有人可以向我解释一下,或者指出正确的方向吗?
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

你有一个string到 的地图TeamRow,所以当你离开val地图时,它会返回团队的价值,而不是指向团队的指针。如果您将映射设为指向的指针的字符串,TeamRow那么当您取出 val 时,它将指向存储在映射中的内存,因此值将在您的AddLoss函数范围之外持续存在。要做到这一点,只需*在地图声明中添加一个 -teamMap map[string]*TeamRow尽管当您填充它时,您还需要在地图中存储指针。



查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信