GO语言如何改变 map 指针内部对象的值

标签 go

我该怎么做?

我有对象列表,我想列出所有对象并更改对象名称。 我有列表,我正在做一段时间发送到另一个函数,在那里我更改了名称,但名称没有保存。

知道我该怎么做吗?

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
}

参见 https://play.golang.org/p/9naDP3SfNh

关于GO语言如何改变 map 指针内部对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28879220/

相关文章:

go - Youtube-dl直接下载到客户端浏览器

google-app-engine - 在 App Engine 上执行长时间运行的进程的正确方法是什么?

go - 如何编写 Golang bson- MongoDB

go - 在项目结构中生成临时文件夹

如果使用字段中具有默认值的 Struct 实例进行过滤,Go-gorm 将返回所有记录

go - 让 go 例程等待 rabbitMQ 发送结果

testing - 如何在测试中将模型与 Controller 分开?

concurrency - 计算/显示事件 goroutine 的数量

go - fatal error : all goroutines are asleep - deadlock

postgresql - 无法从 golang 连接到 docker postgres 容器