Go предлага много начини за генериране на UUID, които са удобен и надежден начин за организиране на вашите данни.
Универсалните уникални идентификатори (UUID) са популярни за идентификация на потребителите в приложения, където високата степен на произволност е от съществено значение. UUID са добър избор за приложения, които обслужват милиони потребители, тъй като намаляват вероятността от сблъсъци и са универсално различни в различните системи.
Go не предоставя пакет(и) за генериране на UUID. Тъй като повечето операционни системи, свързани с Unix, включват uuidgen програма, можете да използвате операционна система пакет за генерирането им. Можете също да използвате външен Go пакет като този на Google uuid или гоуид пакет.
Генериране на UUID с os пакета
The Go операционна система
пакетът предоставя функционалност за взаимодействие с операционната система на хост машината по Unix-подобен начин. Можете да изпълнявате команди с изп подпакет на операционна система пакетирайте и извлечете изхода за вашия Go програми.Импортирайте тези вградени пакети във вашия Go файл, за да генерирате UUID с операционна система пакет.
импортиране (\н "fmt"\н "дневник"\н "os/exec"\n)\n
Ще използвате дневник пакет за регистриране на възможни грешки и на fmt пакет за форматиране на низове за извеждане на генерирания UUID.
Можете да изпълнявате команди с командване метод на изп пакет. The Изход метод връща резултата от командата.
функosExec() {\n генериране на UUID, грешка := изп. команда("uuidgen").Output()\n \n ако грешка!= нула {\n дневник. Фатално (грешка)\n }\n \n fmt. Println (generateUUID)\n}\n
The osExec функция генерира и отпечатва UUID с помощта на uuidgen команда.
Генериране на UUID с UUID пакета на Google
Google uuid пакетът генерира и проверява UUID на базата на RFC 4122 и услугите за удостоверяване и сигурност DCE 1.1.
Изпълнете тази терминална команда в директорията на вашия проект, за да инсталирате uuid пакет като една от зависимостите на вашия проект.
отивам вземете github.com/google/uuid\n
Импортирайте uuid пакет за генериране на UUID и fmt пакет за извеждане на UUID на вашата конзола.
импортиране (\н "fmt"\н "github.com/google/uuid"\n)\n
Можете да генерирате UUID с uuid пакета Нов метод. The Нов метод връща случаен UUID и можете да използвате неговия низ метод за получаване на низово представяне от него.
функgoogleUUID() {\n uuidValue := uuid. New()\n fmt. Println (uuidValue. String())\n}\n
The googleUUID функцията използва Нов метод за отпечатване на формата на низ на случаен UUID.
Генериране на UUID с пакета GoUUID
Пакетът gouuid предоставя неизменни UUID структури и функции за генериране на NewV3, NewV4 и NewV5 UUID и анализиране на UUID, както е посочено в RFC 4122.
Изпълнете тази команда в терминала на вашата работна директория, за да инсталирате гоуид пакет към зависимостите на вашия проект.
отивам вземете github.com/nu7hatch/gouuid\n
Импортирайте fmt и гоуид пакети с псевдоним uuid (конвенционален) за генериране на UUID.
импортиране (\н "fmt"\n uuid "github.com/nu7hatch/gouuid"\n)\n
Можете да генерирате версия 4 UUID с NewV4 метод, който връща UUID или грешка.
функгенерирам V4(){\n v4UUID, грешка := uuid. NewV4()\n \n ако грешка!= нула {\n fmt. Println (грешка)\n }\n \n fmt. Println (v4UUID)\n}\n
The генерирам V4 метод отпечатва генерирания UUID от NewV4 метод на гоуид пакет.
По същия начин можете да генерирате версия 5 UUID с NewV5 метод. The NewV5 методът приема URL адрес на пространство от имена на UUID и байтов срез и връща генерирания UUID на версия 5.
функгенерира V5(){\n v5UUID, грешка := uuid. NewV5(uuid. URL адрес на пространството от имена, []байт("go.dev"))\n \n ако грешка!= нула {\n fmt. Println (грешка)\n }\n \n fmt. Println (v5UUID)\n}\n
The генерира V5 функция отпечатва генерираната версия пет UUID след генерирането на UUID с NewV5 метод, ако няма грешки при генериране.
Можете да генерирате UUID с повечето езици за програмиране
UUID са полезни за много случаи на употреба, така че са популярни в ежедневните приложения. Повечето езици за програмиране предоставят функционалност за генериране на UUID в техните стандартни библиотеки или екосистемни пакети.