如果Waitgroups和Mutex总是需要始终通过引用传递,我们是否不能将其设为引用类型(禁止将它们用作按值传递)?我的意思是,有什么用例需要使用按值传递?
答案 0 :(得分:2)
当您传递任何参数作为值时,该值将被复制。这些自变量的任何修改都将在func
中进行。当func
退出时,这些更改将消失。
在使用WaitGroup
或Mutex
的情况下,您不希望这样做,因为您希望共享状态。如果所有修改都是本地的,则您将无法同步任何内容,因为您将拥有状态不同的许多不同副本。
一个有效的情况可能是您想要复制WaitGroup
或Mutex
,但这将是非常隐含的代码,并且另一个开发人员很难理解/维护。