大家帮我看一下,我是新手菜鸡,应该是我理解不到位,求解惑,感谢!

chyuhung · · 860 次点击 · 开始浏览    置顶

``` /* 我想实现的是一个servers数组,里面装了server(map),server不同的key对应不同的value,如server1{"name":"machine1" ...},server2{"name":"machine2"}... 然后我通过遍历数组servers,遇到不同的下标时修改对应servers[i]的某个key对应的值,但是这样写下来运行每个server全都改成了同样的值,自己调试发现代码到那一步(断点)就是直接就全部server都改了,新手看了半天很困惑,希望了解的帮我看一下,先谢谢了! */ package main import ( "fmt" "strconv" ) func main() { servers := New() Mod(servers) fmt.Println(servers) } func New() *[]map[string]string { server := make(map[string]string) servers := make([]map[string]string, 0) for i := 0; i < 5; i++ { server["name"] = "server" + string(i) server["type"] = "machine" servers = append(servers, server) } return &servers } func Mod(servers *[]map[string]string) { for i, server := range *servers { if i == 1 { fmt.Println(i) server["name"] = "machine" + strconv.Itoa(i) server["type"] = "cloud" fmt.Println(server["name"]) } if i == 3 { //fmt.Println(i) /*断点*/server["name"] = "machine" + strconv.Itoa(i) server["type"] = "physic" fmt.Println(server["name"]) } } } ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

860 次点击  
加入收藏 微博
9 回复  |  直到 2022-07-18 11:03:57
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传