go語言生成uuid

2021-08-14 10:18:14 字數 1188 閱讀 3607

作業系統: centos 6.9_x64

go語言版本: 1.8.3

golang沒有提供生成uuid的介面,但開發中確實需要uuid。

這裡把看到的**記錄下,也方便我以後查閱。

示例**如下:

package main

import (

"fmt"

"sync/atomic"

"time"

)type uuid [16]byte

var timebase = time.date(1582, time.october, 15, 0, 0, 0, 0, time.utc).unix()

var hardwareaddr byte

var clockseq uint32

func timeuuid() uuid

func fromtime(atime time.time) uuid

func (u uuid) string() string

const hexstring = "0123456789abcdef"

r := make(byte, 36)

for i, b := range u

r[8] = '-'

r[13] = '-'

r[18] = '-'

r[23] = '-'

return string(r)

}func main()

執行效果:

[root@local t2]# go run uuidtest.go

[root@local t2]#

3e42d638-5243-11e7-8001-000000000000

當然如果你只是想快速的得到uuid,而且使用的是linux系統,可以直接使用uuidgen命令來獲取。

示例**如下:

package main

import (

"fmt"

"log"

"os/exec"

)//run in linux

func main()

fmt.printf("%s", out)

}

好,就這些了,希望對你有幫助。

語言生成uuid.rst

歡迎補充

利用mysql生成UUID

在日常的開發環境中,我們經常使用uuid來當做主鍵,一般我們使用的都是現成的工具類,但其實mysql就可以生成uuid。mysql生成uuid是使用的uuid 函式,如下圖 但是生成的這個uuid中間是有 隔開的,我們一般是不要的,所以需要將 去掉。這裡我們使用replace 函式來實現去掉 這樣,...

go 實現乙個簡單的UUID生成器

檢視源 實現方法 uuid 通過三部分組成 curtime 22 generaterid 12 sequenceid 具體原理如下 首先每乙個uuid生成器有乙個id 在生成uuid的時候 先取當前時間距離1970的秒數作為高位,generaterid作為中間 如果本次生成的時間和上一次的時間相同,...

pgsql的UUID生成函式

pgsql 安裝函式 uuid生成函式 pgsql預設安裝是沒有該類函式的,若指令碼執行到此處出錯,需開啟下面注釋,安裝uuid生成函式 create extension uuid ossp 使用函式 select uuid generate v4 select replace cast uuid ...