次のようなコードがあります。
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]
ですかu[6]
。
UUID を生成するより良い方法はありますか?