Adron
3/13/2017 - 10:45 PM

UUID v1, v2, v3, v4 and v5

UUID v1, v2, v3, v4 and v5

package main

import (
	"fmt"
	"github.com/satori/go.uuid"
)

func main() {
	// Creating UUID Version 1
	uuid1 := uuid.NewV1()
	fmt.Printf("UUIDv1: %s\n", uuid1)

	// Creating UUID Version 2 - Domain Person
	uuid2 := uuid.NewV2(uuid.DomainPerson)
	fmt.Printf("UUIDv2: %s\n", uuid2)

	// Creating UUID Version 2 - Domain Group
	uuid2b := uuid.NewV2(uuid.DomainGroup)
	fmt.Printf("UUIDv2: %s\n", uuid2b)

	// Creating UUID Version 2 - Domain Organization
	uuid2c := uuid.NewV2(uuid.DomainOrg)
	fmt.Printf("UUIDv2: %s\n", uuid2c)

	// Creating UUID Version 3
	uuid3 := uuid.NewV3(uuid.NamespaceDNS, "someplace.org")
	fmt.Printf("UUIDv2: %s\n", uuid3)

	// Creating UUID Version 4
	uuid4 := uuid.NewV4()
	fmt.Printf("UUIDv4: %s\n", uuid4)

	// Creating UUID Version 5
	uuid5 := uuid.NewV5(uuid.NamespaceURL, "blaghdblagh.com")
	fmt.Printf("UUIDv5: %s\n", uuid5)

	// Parsing UUID from string input
	u2, err := uuid.FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8")

	if err != nil {
		fmt.Printf("Something gone wrong: %s", err)
	}

	fmt.Printf("Successfully parsed: %s\n", u2)
}