Saya memiliki kode yang terlihat seperti ini:
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)
Ia mengembalikan string dengan panjang 32, tapi saya rasa itu bukan UUID yang valid. Jika itu adalah UUID yang sebenarnya, mengapa itu UUID, dan apa tujuan kode yang mengubah nilai u[8]
dan u[6]
.
Apakah ada cara yang lebih baik untuk menghasilkan UUID?