Generación de UUID con Go

Generación de UUID con Go

Los identificadores únicos universales (UUID) son populares para la identificación de usuarios en aplicaciones donde es esencial un alto grado de aleatoriedad. Los UUID son una buena opción para las aplicaciones que sirven a millones de usuarios, ya que reducen la posibilidad de colisiones y son universalmente distintos en todos los sistemas.

Go no proporciona ningún paquete para generar UUID. Dado que la mayoría de los sistemas operativos relacionados con Unix incluyen el programa uuidgen , puede usar el paquete os para generarlos. También puede usar un paquete Go externo como uuid de Google o el paquete gouuid .

Generación de UUID con el paquete os

la descripción general del paquete os

El paquete Go os proporciona funcionalidad para interactuar con el sistema operativo de la máquina anfitriona de forma similar a Unix. Puede ejecutar comandos con el subpaquete exec del paquete os y recuperar la salida para sus programas Go.

Importe estos paquetes integrados en su archivo Go para generar UUID con el paquete os .

import (\n "fmt"\n "log"\n "os/exec"\n)\n

Utilizará el paquete de registro para registrar posibles errores y el paquete de formato de cadena fmt para generar el UUID generado.

Puede ejecutar comandos con el método Command del paquete exec . El método Output devuelve la salida del comando.

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

La función osExec genera e imprime un UUID usando el comando uuidgen .

Generación de UUID con el paquete UUID de Google

vista previa de uuid de google

El paquete uuid de Google genera e inspecciona los UUID según RFC 4122 y los servicios de seguridad y autenticación DCE 1.1.

Ejecute este comando de terminal en el directorio de su proyecto para instalar el paquete uuid como una de las dependencias de su proyecto.

go get github.com/google/uuid\n

Importe el paquete uuid para generar UUID y el paquete fmt para enviar el UUID a su consola.

import (\n "fmt"\n "github.com/google/uuid"\n)\n

Puede generar un UUID con el método New del paquete uuid . El método New devuelve un UUID aleatorio y puede usar su método String para obtener una representación de cadena del mismo.

func googleUUID() {\n uuidValue: = uuid.New()\n fmt.Println(uuidValue.String())\n}\n

La función googleUUID usa el método New para imprimir el formato de cadena de un UUID aleatorio.

Generación de UUID con el paquete GoUUID

la vista previa gouuid

El paquete gouuid proporciona estructuras y funciones UUID inmutables para generar UUID NewV3, NewV4 y NewV5 y analizar los UUID como se especifica en RFC 4122.

Ejecute este comando en la terminal de su directorio de trabajo para instalar el paquete gouuid en las dependencias de su proyecto.

go get github.com/nu7hatch/gouuid\n

Importe los paquetes fmt y gouuid con el alias uuid (convencional) para generar UUID.

import (\n "fmt"\n uuid "github.com/nu7hatch/gouuid"\n)\n

Puede generar UUID de la versión 4 con el método NewV4 que devuelve el UUID o un error.

func generateV4(){\n v4UUID, err: = uuid.NewV4()\n \n if err! = nil {\n fmt.Println(err)\n }\n \n fmt.Println(v4UUID)\n}\n

El método generateV4 imprime el UUID generado a partir del método NewV4 del paquete gouuid .

De manera similar, puede generar UUID de la versión 5 con el método NewV5 . El método NewV5 toma una URL de espacio de nombres UUID y un segmento de bytes y devuelve el UUID de la versión 5 generado.

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

La función generateV5 imprime el UUID de la versión cinco generado después de la generación del UUID con el método NewV5 si no hay errores de generación.

Puede generar UUID con la mayoría de los lenguajes de programación

Los UUID son útiles para muchos casos de uso, por lo que son populares en las aplicaciones cotidianas. La mayoría de los lenguajes de programación brindan funcionalidad para generar UUID en sus bibliotecas estándar o paquetes de ecosistema.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *