uuid第三方庫能夠在github上找,我在這使用的是:github.com/satori/go.uuidgit
PS:不知道哪裏緣由,使用go mod 管理包,下載的包和github上的不是徹底同樣,也特地看了版本,都是v1.2.0github
生成uuid主要函數:後端
// NewV1 returns UUID based on current timestamp and MAC address. func NewV1() UUID { return global.NewV1() } // NewV2 returns DCE Security UUID based on POSIX UID/GID. func NewV2(domain byte) UUID { return global.NewV2(domain) } // NewV3 returns UUID based on MD5 hash of namespace UUID and name. func NewV3(ns UUID, name string) UUID { return global.NewV3(ns, name) } // NewV4 returns random generated UUID. func NewV4() UUID { return global.NewV4() } // NewV5 returns UUID based on SHA-1 hash of namespace UUID and name. func NewV5(ns UUID, name string) UUID { return global.NewV5(ns, name) } // Generator provides interface for generating UUIDs. type Generator interface { NewV1() UUID NewV2(domain byte) UUID NewV3(ns UUID, name string) UUID NewV4() UUID NewV5(ns UUID, name string) UUID }
示例:dom
// Creating UUID Version 4 u1 := uuid.NewV1() fmt.Printf("UUIDv1: %s\n", u1) // Parsing UUID from string input 好比url傳參,後端獲得的是字符串,把字符串解析成UUID類型 u2, err := uuid.FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") if err != nil { fmt.Printf("Something gone wrong: %s", err) } fmt.Printf("Successfully parsed: %s", u2)
若是是Linux,有專門生成UUID的命令:uuidgenide
import ( "fmt" "log" "os/exec" ) func main() { out, err := exec.Command("uuidgen").Output() if err != nil { log.Fatal(err) } fmt.Printf("%s", out) }
uuidgen支持兩個參數,-r生成隨機uuid,-t生成基於時間的uuid。函數
out, err := exec.Command("uuidgen", "t").Output()
......
GUID擴展:https://blog.csdn.net/signjing/article/details/69358110ui