猿问
为什么 sync.WaitGroup、sync.Mutex 不引用通道、切片等类型?
如果 Waitgroups 和 Mutex 总是需要通过引用传递,我们是否可以将其设为引用类型(禁止使用它们作为值传递)?我的意思是有没有我们需要使用它们按值传递的用例?
白衣染霜花
浏览 78
回答 1
1回答
哈士奇WWW
当您将任何参数作为值传递时,该值将被复制。这些参数的任何修改都将是局部的func。当func退出时,这些更改将消失。万一WaitGroup你Mutex不想这样,因为你想分享状态。如果所有修改都是本地的,您将无法同步任何内容,因为您将拥有许多具有不同状态的不同副本。一个有效的情况可能是您想要复制WaitGroupor Mutex,但这将是非常隐含的代码,并且其他开发人员很难理解/维护。
0
0
0
随时随地看视频
慕课网APP
相关分类
Go
我要回答