在 Golang 中生成 UUID
UUID 代表通用唯一标识符。它是用于唯一标识基础 (OSF) 的 128 位值。
UUID 提供唯一性,因为它根据时间、光标移动、系统硬件(MAC 等)等生成 id。
因此,UUID 很可能在空间和时间上是唯一的,并且很难猜测,因为它基于许多因素。本文中的 UUID 包根据 RFC 4122 和 DCE 1.1:身份验证和安全服务生成和检查 UUID。
UUID 的优点:
- 它可以用作生成唯一随机 id 的通用实用程序。
- 它还可以用于加密和散列应用程序。
- 它在生成随机文档、地址等方面很有用。
在 Golang 中生成 UUID
在生成 UUID 之前,我们首先初始化一个 go 项目。因此,为新项目创建一个空目录。使用 init 命令进行初始化:go mod init projectName。这会生成一个 go.mod 文件。
例子:
go mod init gfg
创建一个新文件 main.go。
输出:
生成的目录结构:
go 代码可以添加到这个 main.go 文件中并使用以下命令运行:
go run main.go
有两种方法可以生成 UUID:
- 使用内置库 - os/exec
- 谷歌使用 uuid 包 – github.com/google/uuid
现在我们将学习如何使用以下方法在 Golang 中生成 UUID:
使用 os/exec 生成 UUID
要使用 os/exec 生成 UUID,请执行以下步骤:
第 1 步:为 UUID 实用程序导入 os/exec 包。
第二步:通过导入的os/exec包执行uuidgen命令。
第 3 步:检查生成时是否有任何错误。
第 4 步:打印生成的 UUID。
文件名:main.go
Go
package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
newUUID, err := exec.Command("uuidgen").Output()
if err != nil {
log.Fatal(err)
}
fmt.Println("Generated UUID:")
fmt.Printf("%s", newUUID)
}
Go
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
id := uuid.New()
fmt.Println("Generated UUID:")
fmt.Println(id.String())
}
输出:
生成 UUID google/uuid 包
要使用 google/uuid 包生成 UUID,请执行以下步骤:
第 1 步:使用以下命令安装 google/uuid 包:
go get github.com/google/uuid
这还会创建一个 go.sum 文件并更新 go.mod 文件,添加包详细信息。
第 2 步:为 uuid 实用程序导入 github.com/google/uuid 包
第三步:使用 uuid.New 导入的 uuid 包的函数
第 4 步:打印生成的 UUID
文件名:main.go
去
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
id := uuid.New()
fmt.Println("Generated UUID:")
fmt.Println(id.String())
}
输出: