2016-07-17 47 views

回答

9

獨特性有多獨特?
如果通用唯一,請參見:https://en.wikipedia.org/wiki/Universally_unique_identifier
在總共128位的,第4類的UUID有6個保留比特(4版本和其他2個保留比特),所以隨機生成的UUID有122個隨機比特。

的UUID見:Is there a method to generate a UUID with go language

如何顯示呢?Binary-to-text encoding
A UUID只是一個128位值。如果以十六進制格式顯示,它將是長度爲32個字符
如果你想在10位,128/10 = 12.8 => 13位每個地方,所以你需要8192字母!

字符串Golang在UTF-8編碼的,所以你可以使用Unicode字母: Unicode有足夠的代碼點,請參閱:How many characters can be mapped with Unicode?

結論
如果你需要通用唯一隻是使用的UUID。

看:How to generate a random string of a fixed length in golang?

,或者如果你需要的僞隨機字符串,長度爲10,你可以使用這個(但不是通用唯一):

package main 

import "crypto/rand" 
import "fmt" 

func main() { 
    n := 5 
    b := make([]byte, n) 
    if _, err := rand.Read(b); err != nil { 
     panic(err) 
    } 
    s := fmt.Sprintf("%X", b) 
    fmt.Println(s) 
} 

輸出樣本:

FA8EA2FBCE 

另見:Output UUID in Go as a short string

和:Is there a method to generate a UUID with go language

+0

也相關/有用:[輸出UUID在Go作爲一個短字符串](http://stackoverflow.com/questions/37934162/output-uuid-in-go-as-a-short-string) – icza

相關問題