【发布时间】:2020-11-04 17:16:42
【问题描述】:
我正在尝试将字符串数组复制到字符串指针数组中
但在范围的末尾,我看到目标数组中的所有元素都指向源数组中的最后一个元素。
我是新手,想正确理解幕后发生的事情。
这里是重现问题的代码sn-p
emails := []string{"a", "b"}
CCEmails := []*string{}
for _, cc := range emails {
CCEmails = append(CCEmails,&cc)
}
fmt.Println(CCEmails)
【问题讨论】:
-
将代码放入问题中,而不是仅链接到它。
-
Go
range循环 reuse 迭代变量,因此为了避免您看到的问题,您首先需要在循环内创建迭代变量的副本,然后使用它的指针添加到结果数组/切片中。 -
@mkopriva 听起来像是值得发布的答案。
-
谁投了反对票,你能解释一下原因吗?