通用唯一標識符 UUID(universally unique identifier)或全局唯一標識符 GUID (globally unique identifier)是用於標識信息的 128 位數字。
UUID 的字符串表示形式由 32 個十六進位數字組成,以 5 個組顯示,由連字符 - 分隔。例如:
123e4567-e89b-12d3-a456-426655440000
您可以使用來自 crypto/rand 包的 rand.Read 函數來生成基本的 UUID。
b := make([]byte, 16)
_, err := rand.Read(b)
if err != nil {
log.Fatal(err)
}
uuid := fmt.Sprintf("%x-%x-%x-%x-%x",
b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
fmt.Println(uuid)
輸出:
9438167c-9493-4993-fd48-950b27aad7c9
此 UUID 不符合 RFC4122 。特別是,它不包含任何版本號或變體號。
警告:如果系統底層調用失敗,則 rand.Read 調用將返回錯誤。例如,如果它在 Unix 系統上不能讀取 /dev/urandom ,或者在 Windows 系統上 CryptAcquireContext 調用失敗。