我的代码如下所示:
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,为什么是 UUID,修改u[8]
and的值的代码的目的是什么u[6]
。
有没有更好的方法来生成 UUID?