go语言如何强制使用值复制的方式来赋值而不是仅仅让指针指向同一个值
把一个指针类型的变量赋值给一个新变量时,只是传了一个地址过去,两个变量实际上指向同一个对象,改动一个也就是两个都改。
package main
import (
"container/list"
"fmt"
)
func main() {
l1 := list.New() // *list.List
l1.PushBack(1)
fmt.Println(l1.Back().Value) // 1
l2 := l1
l2.PushBack(2)
fmt.Println(l1.Back().Value, l2.Back().Value) // 2 2
l1.PushBack(3)
fmt.Println(l1.Back().Value, l2.Back().Value) // 3 3
}
有什么简单的写法能让指针类型的赋值像值类型的赋值那样,把值复制一份再传过去?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
输出