Tôi có mã trông như thế này:
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)
Nó trả về một chuỗi có độ dài 32, nhưng tôi không nghĩ đó là một UUID hợp lệ. Nếu đó là UUID thực, tại sao nó là UUID và mục đích của mã sửa đổi giá trị của u[8]
và là gì u[6]
.
Có cách nào tốt hơn để tạo UUID không?