golang中的map和channel的赋值都是引用传递?

ddxx11223 · 2017-12-07 12:19:02 · 3050 次点击

这三者其实区别不大的

#1
更多评论

slice的话,如果扩容了,会再开辟一段内存存放数据。那channel呢,如何使它们互相赋值时是完全拷贝(包括内部元素),而非指向同一块内存

#2

这是创建 channel 的源码。

func makechan(t *chantype, size int64) *hchan

可见其实是一个指针。

相关定义在 http://docs.studygolang.com/src/runtime/chan.go#L62

#3