golang-uuid

 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

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息