谷歌出品的go语言uuid库github.com/google/uuid
,按国际惯例,先看示例。
生成纯数字类型uuid
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
u1 := uuid.New()
u2, _ := uuid.NewRandom()
fmt.Println(u1.ID())
fmt.Println(u2.ID())
}
/* -- 输出 --
3507369127
1284741309
*/
生成字符串类型uuid
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
u1 := uuid.New()
u2, _ := uuid.NewRandom()
fmt.Println(u1.String())
fmt.Println(u2.String())
}
/* -- 输出 --
494e09ff-29ec-426a-a3a1-362078085557
8451e91a-4251-4cb8-ac82-6bd1fb684a61
*/
完整文档👈
使用简单,支持纯数字和字符串类型,但是纯数字类型不保证递增。
GitHub上还有一个uuid库github.com/satori/go.uuid
,但是只能生成字符串类型的uuid。
package main
import (
"fmt"
"github.com/satori/go.uuid"
)
func main() {
u1 := uuid.NewV4()
fmt.Println(u1.String())
}
/* -- 输出 --
36a657b9-f529-4037-b6f7-9a1cb8060996
*/