Tạo UUID với Go
Mã định danh duy nhất toàn cầu (UUID) phổ biến để nhận dạng người dùng trong các ứng dụng cần mức độ ngẫu nhiên cao. UUID là một lựa chọn tốt cho các ứng dụng phục vụ hàng triệu người dùng vì chúng giảm khả năng xảy ra xung đột và chúng khác biệt phổ biến giữa các hệ thống.
Go không cung cấp bất kỳ (các) gói nào để tạo UUID. Vì hầu hết các hệ điều hành liên quan đến Unix bao gồm uuidgen chương trình, bạn có thể sử dụng hệ điều hành gói để tạo ra chúng. Bạn cũng có thể sử dụng gói Go bên ngoài như của Google uuid hoặc là gouuid bưu kiện.
Mục Lục
Tạo UUID với Gói os
đi hệ điều hành gói cung cấp chức năng để tương tác với hệ điều hành của máy chủ theo kiểu giống như Unix. Bạn có thể thực hiện các lệnh với giám đốc điều hành gói con của hệ điều hành gói và truy xuất đầu ra cho các chương trình Go của bạn.
Nhập các gói tích hợp này vào tệp Go của bạn để tạo UUID với hệ điều hành bưu kiện.
import (n "fmt"n "log"n "os/exec"n)n
Bạn sẽ sử dụng đăng nhập gói để ghi lại các lỗi có thể xảy ra và fmt gói định dạng chuỗi để xuất UUID đã tạo.
Bạn có thể chạy các lệnh với Chỉ huy phương pháp của giám đốc điều hành bưu kiện. Các đầu ra phương thức trả về đầu ra của lệnh.
func osExec() {n generateUUID, err := exec.Command("uuidgen").Output()n n if err != nil {n log.Fatal(err)n }n n fmt.Println(generateUUID)n}n
Các osExec chức năng tạo và in UUID bằng cách sử dụng uuidgen chỉ huy.
Tạo UUID với Gói UUID của Google
Google uuid gói tạo và kiểm tra UUID dựa trên RFC 4122 và Dịch vụ bảo mật và xác thực DCE 1.1.
Chạy lệnh đầu cuối này trong thư mục dự án của bạn để cài đặt uuid gói là một trong những phụ thuộc của dự án của bạn.
go get github.com/google/uuidn
Nhập khẩu uuid gói để tạo UUID và fmt gói để xuất UUID ra bảng điều khiển của bạn.
import (n "fmt"n "github.com/google/uuid"n)n
Bạn có thể tạo UUID với gói uuid Mới mẻ phương pháp. Các Mới mẻ phương thức trả về một UUID ngẫu nhiên và bạn có thể sử dụng nó Chuỗi phương pháp để có được một đại diện chuỗi của nó.
func googleUUID() {n uuidValue := uuid.New()n fmt.Println(uuidValue.String())n}n
Các googleUUID chức năng sử dụng Mới mẻ để in định dạng chuỗi của một UUID ngẫu nhiên.
Tạo UUID với Gói GoUUID
Gói gouuid cung cấp các cấu trúc và hàm UUID bất biến để tạo UUID NewV3, NewV4 và NewV5 cũng như phân tích cú pháp các UUID như được chỉ định trong RFC 4122.
Chạy lệnh này trong thiết bị đầu cuối của thư mục làm việc của bạn để cài đặt gouuid gói vào các phụ thuộc của dự án của bạn.
go get github.com/nu7hatch/gouuidn
Nhập khẩu fmt và gouuid các gói có bí danh uuid (thông thường) để tạo UUID.
import (n "fmt"n uuid "github.com/nu7hatch/gouuid"n)n
Bạn có thể tạo UUID phiên bản 4 bằng MớiV4 phương thức trả về UUID hoặc lỗi.
func generateV4(){n v4UUID, err := uuid.NewV4()n n if err != nil {n fmt.Println(err)n }n n fmt.Println(v4UUID)n}n
Các tạoV4 phương thức in UUID được tạo từ MớiV4 phương pháp của gouuid bưu kiện.
Tương tự, bạn có thể tạo UUID phiên bản 5 bằng MớiV5 phương pháp. Các MớiV5 phương thức lấy một URL không gian tên UUID và một lát byte và trả về UUID phiên bản 5 đã tạo.
func generateV5(){n v5UUID, err := uuid.NewV5(uuid.NamespaceURL, []byte("go.dev"))n n if err != nil {n fmt.Println(err)n }n n fmt.Println(v5UUID)n}n
Các tạoV5 chức năng in phiên bản năm UUID được tạo sau khi tạo UUID với MớiV5 phương pháp nếu không có lỗi tạo.
Bạn có thể tạo UUID với hầu hết các ngôn ngữ lập trình
UUID hữu ích cho nhiều trường hợp sử dụng, vì vậy chúng phổ biến trong các ứng dụng hàng ngày. Hầu hết các ngôn ngữ lập trình đều cung cấp chức năng tạo UUID trong thư viện tiêu chuẩn hoặc gói hệ sinh thái của chúng.