开发者社区> 问答> 正文

golang中for循环读取map结果不正确

代码如下

package main

import "fmt"

type Foo struct {
   bar string
}
func main() {
   list := []Foo{
      {"A"},
      {"B"},
      {"C"},
   }
   list2 := make([]*Foo, len(list))
   for i, value := range list {
      //fmt.Printf("%p\n",&value)
      list2[i] = &value
   }
   fmt.Println(list[0], list[1], list[2])
   fmt.Println(list2[0], list2[1], list2[2])
}

运行结果如下

{A} {B} {C}
&{C} &{C} &{C}

为什么list2的结果内容全是C呢?

展开
收起
道月芬1 2021-10-20 05:53:45 352 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
阿里开发者手册-Golang专题 立即下载
Golang 微服务在腾讯游戏用户运营领域的探索及实践 立即下载
低代码开发师(初级)实战教程 立即下载