Generowanie identyfikatorów UUID w Go
Uniwersalne unikalne identyfikatory (UUID) są popularne do identyfikacji użytkowników w aplikacjach, w których niezbędny jest wysoki stopień losowości. Identyfikatory UUID to dobry wybór dla aplikacji obsługujących miliony użytkowników, ponieważ zmniejszają ryzyko kolizji i są powszechnie różne w różnych systemach.
Go nie udostępnia żadnych pakietów do generowania identyfikatorów UUID. Ponieważ większość systemów operacyjnych związanych z Uniksem zawiera program uuidgen , do ich wygenerowania można użyć pakietu os . Możesz także użyć zewnętrznego pakietu Go, takiego jak uuid Google lub pakiet gouuid .
Generowanie identyfikatorów UUID za pomocą pakietu os
Pakiet Go os zapewnia funkcjonalność do interakcji z systemem operacyjnym hosta w sposób podobny do systemu Unix. Możesz wykonywać polecenia z podpakietem exec pakietu os i pobierać dane wyjściowe dla swoich programów Go.
Zaimportuj te wbudowane pakiety do pliku Go, aby wygenerować identyfikatory UUID za pomocą pakietu os .
import (\n "fmt"\n "log"\n "os/exec"\n)\n
Użyjesz pakietu dziennika do zarejestrowania możliwych błędów, a pakietu formatowania łańcucha fmt do wygenerowania wygenerowanego identyfikatora UUID.
Możesz uruchamiać polecenia za pomocą metody Command pakietu exec . Metoda Output zwraca dane wyjściowe polecenia.
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
Funkcja osExec generuje i drukuje identyfikator UUID za pomocą polecenia uuidgen .
Generowanie identyfikatorów UUID za pomocą pakietu UUID firmy Google
Pakiet Google uuid generuje i sprawdza identyfikatory UUID w oparciu o RFC 4122 oraz usługi uwierzytelniania i bezpieczeństwa DCE 1.1.
Uruchom to polecenie terminala w katalogu projektu, aby zainstalować pakiet uuid jako jedną z zależności projektu.
go get github.com/google/uuid\n
Zaimportuj pakiet uuid , aby wygenerować identyfikatory UUID, oraz pakiet fmt , aby wyświetlić identyfikator UUID na konsoli.
import (\n "fmt"\n "github.com/google/uuid"\n)\n
Możesz wygenerować identyfikator UUID za pomocą metody New pakietu uuid. Metoda New zwraca losowy identyfikator UUID i można użyć jej metody String , aby uzyskać jego reprezentację w postaci ciągu znaków.
func googleUUID() {\n uuidValue: = uuid.New()\n fmt.Println(uuidValue.String())\n}\n
Funkcja googleUUID używa metody New do drukowania formatu ciągu losowego identyfikatora UUID.
Generowanie identyfikatorów UUID za pomocą pakietu GoUUID
Pakiet gouuid zapewnia niezmienne struktury UUID i funkcje do generowania identyfikatorów UUID NewV3, NewV4 i NewV5 oraz analizowania identyfikatorów UUID zgodnie z dokumentem RFC 4122.
Uruchom to polecenie w terminalu swojego katalogu roboczego, aby zainstalować pakiet gouuid w zależnościach twojego projektu.
go get github.com/nu7hatch/gouuid\n
Zaimportuj pakiety fmt i gouuid z aliasem uuid (konwencjonalnym), aby wygenerować identyfikatory UUID.
import (\n "fmt"\n uuid "github.com/nu7hatch/gouuid"\n)\n
Możesz wygenerować identyfikatory UUID wersji 4 za pomocą metody NewV4 , która zwraca identyfikator UUID lub błąd.
func generateV4(){\n v4UUID, err: = uuid.NewV4()\n \n if err! = nil {\n fmt.Println(err)\n }\n \n fmt.Println(v4UUID)\n}\n
Metoda generateV4 drukuje wygenerowany identyfikator UUID z metody NewV4 pakietu gouuid .
Podobnie można wygenerować identyfikatory UUID wersji 5 za pomocą metody NewV5 . Metoda NewV5 przyjmuje adres URL przestrzeni nazw UUID oraz wycinek bajtów i zwraca wygenerowany identyfikator UUID wersji 5.
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
Funkcja generateV5 drukuje wygenerowany identyfikator UUID wersji piątej po wygenerowaniu identyfikatora UUID za pomocą metody NewV5 , jeśli nie ma błędów generowania.
Możesz generować identyfikatory UUID w większości języków programowania
Identyfikatory UUID są przydatne w wielu przypadkach użycia, dlatego są popularne w codziennych zastosowaniach. Większość języków programowania zapewnia funkcjonalność do generowania identyfikatorów UUID w swoich standardowych bibliotekach lub pakietach ekosystemów.
Dodaj komentarz