RT。
Slice的赋值其实看似是引用,实则是拷贝,只是它们内部指向了同一块内存区域而已,这个map和channel的赋值不知道内部是怎么做的?纯引用?
那如果我希望是拷贝,而不是引用,该怎么破?
有疑问加站长微信联系(非本文作者)

RT。
Slice的赋值其实看似是引用,实则是拷贝,只是它们内部指向了同一块内存区域而已,这个map和channel的赋值不知道内部是怎么做的?纯引用?
那如果我希望是拷贝,而不是引用,该怎么破?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
这三者其实区别不大的
slice的话,如果扩容了,会再开辟一段内存存放数据。那channel呢,如何使它们互相赋值时是完全拷贝(包括内部元素),而非指向同一块内存
这是创建 channel 的源码。
可见其实是一个指针。
相关定义在 http://docs.studygolang.com/src/runtime/chan.go#L62
嗯,谢谢回答。后来发现可以用go内置的copy函数对channel进行复制