如何使用go复制公共(public)变量?
例如,一个名为PublicVar的公共(public)变量
a := []string{"A", "B"}
b := a
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
b[0] = "C"
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
// a has been changed.
PublicVar的名称将被更改,但这不是我想要的。
我只想复制PublicVar的值。
最佳答案
发生这种情况是因为PublicVar
可能是实例的指针。因此,temp
也指向同一实例。您可以通过以下方式获取值类型。
temp := *PublicVar
temp.name = "bob"
在Playground上查看示例
编辑:由于已编辑问题以显示关注的变量是一个 slice ,所以khrm的answer更相关。