我该怎么做?
我有对象列表,我想列出所有对象并更改对象名称。 我有列表,我正在做一段时间发送到另一个函数,在那里我更改了名称,但名称没有保存。
知道我该怎么做吗?
https://play.golang.org/p/el3FtwC-3U
如果有任何我可以阅读以了解更多信息的书籍,请。 谢谢你帮助我 =D
最佳答案
在范围循环中:
for _, track := range tracks {
// send track to channel to change the name
Working(&track, &c)
}
track
变量实际上是映射中包含的值的副本,因为这里的赋值作用于 Track
值类型,而在 Go 中,值被复制分配时。
您应该做的是使用 map 的键并从循环内分配值。
for key := range tracks {
t := tracks[key]
// send track to channel to change the name
Working(&t, &c)
tracks[key] = t
}
关于GO语言如何改变 map 指针内部对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28879220/