Tengo un código que se parece a esto:
u := make([]byte, 16)
_, err := rand.Read(u)
if err != nil {
return
}
u[8] = (u[8] | 0x80) & 0xBF // what does this do?
u[6] = (u[6] | 0x40) & 0x4F // what does this do?
return hex.EncodeToString(u)
Devuelve una cadena con una longitud de 32, pero no creo que sea un UUID válido. Si es un UUID real, ¿por qué es un UUID y cuál es el propósito del código que modifica el valor de u[8]
y u[6]
.
¿Existe una forma mejor de generar UUID?