📜  在 Golang 中生成 UUID

📅  最后修改于: 2022-05-13 01:54:36.466000             🧑  作者: Mango

在 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 文件。

例子:

创建一个新文件 main.go。

输出:

创建一个新文件 main.go

生成的目录结构:

目录结构

go 代码可以添加到这个 main.go 文件中并使用以下命令运行:

有两种方法可以生成 UUID:

  1. 使用内置库 - os/exec
  2. 谷歌使用 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.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())
}

输出:

最终输出