Да, присваивание структуры копирует и вложенный Mutex. Использованный mutex копировать нельзя: копия блокировки не обеспечивает защиту тех же данных исходным замком.
При копировании структуры с Mutex — копируется ли Mutex?
Да, присваивание структуры копирует и вложенный Mutex. Использованный mutex копировать нельзя: копия блокировки не обеспечивает защиту тех же данных исходным замком.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да, присваивание структуры копирует и вложенный Mutex. Использованный mutex копировать нельзя: копия блокировки не обеспечивает защиту тех же данных исходным замком.
Особенно опасны методы с value receiver и передача структуры по значению. Если внутри есть map или указатель, копии могут обращаться к общим данным, но блокировать разные mutex. Передавайте *Struct и используйте pointer receiver. Проверка go vet помогает обнаружить копирование lock-значений; это не заменяет понимание владения данными.