Go oferă multe modalități de a genera UUID-uri, care sunt o modalitate convenabilă și robustă de a vă organiza datele.
Identificatorii unici universali (UUID) sunt populari pentru identificarea utilizatorilor în aplicațiile în care un grad ridicat de aleatorie este esențial. UUID-urile sunt o alegere bună pentru aplicațiile care deservesc milioane de utilizatori, deoarece reduc șansele de coliziuni și sunt universal distincte între sisteme.
Go nu oferă niciun pachet (e) pentru generarea de UUID-uri. Deoarece majoritatea sistemelor de operare legate de Unix includ uuidgen program, puteți utiliza os pachet pentru a le genera. De asemenea, puteți utiliza un pachet Go extern, cum ar fi Google uuid sau gouuid pachet.
Generarea UUID-urilor cu pachetul os
The Go os pachetul oferă funcționalitate pentru interacțiunea cu sistemul de operare al mașinii gazdă într-un mod asemănător Unix. Puteți executa comenzi cu exec subpachet al os pachet și preluați rezultatul pentru dvs Go programe.
Importați aceste pachete încorporate în fișierul Go pentru a genera UUID-uri cu os pachet.
import (\n "fmt"\n "Buturuga"\n "os/exec"\n)\n
Veți folosi Buturuga pachet pentru a înregistra posibilele erori și cel fmt pachet de formatare a șirurilor pentru a scoate UUID-ul generat.
Puteți rula comenzi cu Comanda metoda de exec pachet. The Ieșire metoda returnează rezultatul comenzii.
funcosExec() {\n generateUUID, err := exec. Comanda("uuidgen").Ieșire()\n \n dacă greș!= zero {\n jurnal. Fatal (eroare)\n }\n \n fmt. Println (generateUUID)\n}\n
The osExec funcția generează și imprimă un UUID folosind uuidgen comanda.
Generarea UUID-urilor cu pachetul UUID de la Google
Google uuid pachetul generează și inspectează UUID-urile pe baza RFC 4122 și Serviciile de autentificare și securitate DCE 1.1.
Rulați această comandă de terminal în directorul proiectului pentru a instala uuid pachetul ca una dintre dependențele proiectului dvs.
merge obțineți github.com/google/uuid\n
Importă uuid pachet pentru a genera UUID-uri și fmt pachet pentru a scoate UUID-ul în consola dumneavoastră.
import (\n "fmt"\n „github.com/google/uuid”\n)\n
Puteți genera un UUID cu pachetele uuid Nou metodă. The Nou metoda returnează un UUID aleator și îl puteți folosi Şir metodă de a obține o reprezentare în șir a acestuia.
funcgoogleUUID() {\n uuidValue := uuid. Nou()\n fmt. Println (uuidValue. String())\n}\n
The googleUUID funcția folosește Nou metodă de a tipări formatul șirului unui UUID aleatoriu.
Generarea UUID-urilor cu pachetul GoUUID
Pachetul gouuid furnizează structuri și funcții UUID imuabile pentru generarea UUID-urilor NewV3, NewV4 și NewV5 și analizarea UUID-urilor așa cum este specificat în RFC 4122.
Rulați această comandă în terminalul directorului dvs. de lucru pentru a instala gouuid pachet la dependențele proiectului dvs.
merge obțineți github.com/nu7hatch/gouuid\n
Importă fmt și gouuid pachete cu pseudonimul uuid (convențional) pentru a genera UUID-uri.
import (\n "fmt"\n uuid „github.com/nu7hatch/gouuid”\n)\n
Puteți genera versiunea 4 UUID-uri cu NouV4 metodă care returnează UUID-ul sau o eroare.
funcgenerateV4(){\n v4UUID, err := uuid. NewV4()\n \n dacă greș!= zero {\n fmt. Println (err)\n }\n \n fmt. Println (v4UUID)\n}\n
The generateV4 metoda imprimă UUID-ul generat din NouV4 metoda de gouuid pachet.
În mod similar, puteți genera versiunea 5 UUID-uri cu NouV5 metodă. The NouV5 metoda preia o adresă URL a spațiului de nume UUID și o porțiune de octeți și returnează versiunea 5 UUID generată.
funcgeneraV5(){\n v5UUID, err := uuid. NewV5(uuid. NamespaceURL, []octet("go.dev"))\n \n dacă greș!= zero {\n fmt. Println (err)\n }\n \n fmt. Println (v5UUID)\n}\n
The generaV5 funcția imprimă versiunea generată cinci UUID după generarea UUID-ului cu NouV5 metoda dacă nu există erori de generare.
Puteți genera UUID-uri cu majoritatea limbajelor de programare
UUID-urile sunt utile pentru multe cazuri de utilizare, așa că sunt populare în aplicațiile de zi cu zi. Majoritatea limbajelor de programare oferă funcționalitate pentru generarea de UUID-uri în bibliotecile lor standard sau pachetele ecosistemice.