gpt4 book ai didi

go - 为什么 sync.WaitGroup、sync.Mutex 不引用 channel 、 slice 等类型?

转载 作者:数据小太阳 更新时间:2023-10-29 03:39:38 26 4
gpt4 key购买 nike

如果 Waitgroups 和 Mutex 总是需要通过引用传递,我们不能把它做成引用类型(禁止使用它们作为值传递)吗?我的意思是有没有我们需要使用它们按值传递的用例?

最佳答案

当您将任何参数作为值传递时,该值将被复制。这些参数的任何修改都将在 func 中进行。当 func 退出时,这些更改将消失。

WaitGroupMutex 的情况下你不想要这个,因为你想共享状态。如果所有修改都是本地的,您将无法同步任何内容,因为您将拥有许多具有不同状态的不同副本。

一个有效的情况可能是您想要复制一个WaitGroupMutex,但那将是非常隐含的代码并且对另一个人来说很难开发人员理解/维护。

关于go - 为什么 sync.WaitGroup、sync.Mutex 不引用 channel 、 slice 等类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53349547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com