Trong Go, việc tạo UUID rất dễ dàng nhờ có nhiều thư viện hỗ trợ. UUID (Universally Unique Identifier) giúp tạo ra các định danh duy nhất trên toàn cầu. Dưới đây là các cách phổ biến để tạo UUID trong Go.
google/uuid
google/uuid
là một thư viện phổ biến và dễ sử dụng để tạo UUID. Bạn có thể cài đặt nó bằng cách sử dụng lệnh sau:
go get github.com/google/uuid
UUID v4 là một UUID dựa trên số ngẫu nhiên, rất phổ biến trong các ứng dụng tạo mã định danh.
package main import ( "fmt" "github.com/google/uuid" ) func main() { // Tạo UUID v4 uuid := uuid.New() fmt.Println("UUID v4:", uuid) }
satori/go.uuid
github.com/satori/go.uuid
là một thư viện khác cũng phổ biến, tuy nhiên thư viện này hiện không được bảo trì thường xuyên như google/uuid
. Dù vậy, nó vẫn rất ổn định và được sử dụng trong nhiều dự án.
Cài đặt thư viện satori/go.uuid
:
go get github.com/satori/go.uuid
satori/go.uuid
package main import ( "fmt" "github.com/satori/go.uuid" ) func main() { // Tạo UUID v4 uuid := uuid.NewV4() fmt.Println("UUID v4:", uuid) }
UUID v5 có tính xác định, nên được sử dụng trong các trường hợp bạn muốn UUID luôn giống nhau cho cùng một đầu vào (namespace + tên).
package main import ( "fmt" "github.com/google/uuid" ) func main() { // Tạo namespace UUID namespace := uuid.New() // Tạo UUID v5 dựa trên namespace và một tên name := "example.com" uuidV5 := uuid.NewMD5(namespace, []byte(name)) // Sử dụng hàm NewSHA1 để có UUID v5 dựa trên SHA-1 fmt.Println("UUID v5:", uuidV5) }
google/uuid
là sự lựa chọn tốt nhất để tạo UUID trong Go hiện nay, vì nó đơn giản, dễ sử dụng và được bảo trì thường xuyên.UUID giúp đảm bảo tính duy nhất và an toàn khi sử dụng trong các hệ thống phân tán hoặc cần xử lý nhiều dữ liệu.