uuid第三方库可以在github上找,我在这使用的是:github.com/satori/go.uuid

PS:不知道哪里原因,使用go mod 管理包,下载的包和github上的不是完全一样,也特意看了版本,都是v1.2.0

生成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
}

示例:

// 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的命令:uuidgen

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/69358110

最新文章

  1. Ctrip Mydream
  2. 软件工程:黄金G点小游戏1.0
  3. 「2014-2-23」Note on Preliminary Introduction to Distributed System
  4. 嵌入式Linux驱动学习之路(七)Linux内核启动流程
  5. windows 杂项
  6. netty 学习
  7. 从零开始学ios开发(十九):Application Settings and User Defaults(上)
  8. HDU 2689 sort it - from lanshui_Yang
  9. JavaScript编程:java事件模型
  10. 1.编写一个Java应用程序,该程序中有3个类:Ladder、Circle和主类A。具体要求如下:Ladder类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能,包括一个构造方法对上底、下底、高进行初始化。Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能,包括一个构造方法对半径进行初始化。主类A用来测试类Ladder和类Circle的功能。
  11. Maximum Entropy Model(最大熵模型)初理解
  12. 2015 多校联赛 ——HDU5302(矩阵快速幂)
  13. 根据isbn获得图书的所有信息
  14. bytes,bytearray
  15. 剑指Offer 59. 按之字形顺序打印二叉树 (二叉树)
  16. Java高级特性 第7节 多线程
  17. VeeamBackup9.5安装与配置
  18. 腾讯云的基本配置(centos 7.1)及mysql的使用
  19. css布局------上下高度固定,中间高度自适应容器
  20. MIT-6.828-JOS-lab3:User Environments

热门文章

  1. js parse_url 引发的
  2. 第2节 azkaban调度:17、azkaban的两个服务模式的安装
  3. archlinux alsa安装,音量设置和音量信息保存
  4. java常考小程序
  5. (1)JSTL的13个core标签库
  6. A*和IDA*介绍
  7. Bootstrap历练实例:表单控件状态(焦点)
  8. substring substr slice 区别
  9. laravel模型关联与列表展示
  10. 细说unittest-1