我有这样的代码:
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)
它返回一个长度为32的字符串,但我不认为它是一个有效的UUID。如果它是真正的UUID,那么为什么要修改
u [8]
和u [6]
的值?这个代码有什么目的?是否有更好的生成UUID的方法?