Cómo detecta Go las copias de structs con sync.noCopy
How Go detects struct copies with sync.noCopy

El marcador noCopy de Go, presente en tipos como sync.Mutex y sync.Map, no es una regla del compilador, sino una señal para la herramienta go vet. Este artículo explica cómo el verificador copylocks detecta copias no seguras, por qué noCopy implementa Lock y Unlock, y cómo añadir el mismo marcador a tus propios tipos. También analiza las consecuencias de ignorar la advertencia, como un WaitGroup que nunca termina, y el impacto en el tamaño de las estructuras según la posición del campo.
El marcador noCopy no añade ninguna regla especial al compilador de Go. Aún puedes copiar un sync.Map después de haberlo usado.