Когда вы передаете любой аргумент в качестве значения, значение будет скопировано.Любое изменение этих аргументов будет локальным func
.Когда выйдет func
, эти изменения пропадут.
В случае WaitGroup
или Mutex
вы этого не хотите, так как хотите поделиться состоянием.Если бы все модификации были локальными, вы не могли бы синхронизировать что-либо, так как у вас было бы много разных копий с разными состояниями.
Один допустимый случай мог бы состоять в том, что вы хотите скопировать WaitGroup
илиMutex
, но это был бы очень скрытый код, и другому разработчику было бы трудно его понять / поддерживать.