I'm using this library to generate a v4 uuid:
https://github.com/satori/go.uuid
What is the most efficient way to get 2 long ints from the generated uuid?
I'm using this library to generate a v4 uuid:
https://github.com/satori/go.uuid
What is the most efficient way to get 2 long ints from the generated uuid?
You can use the Bytes()
function to get the bytes and then convert to a long with encoding/binary
. As @icza mentioned, you can also slice the UUID object directly, so you don't even need to call Bytes()
.
package main
import "fmt"
import "encoding/binary"
import "github.com/satori/go.uuid"
func main() {
u1 := uuid.NewV4()
fmt.Printf("UUIDv4: %s
", u1)
l1 := binary.BigEndian.Uint64(u1[:8])
l2 := binary.BigEndian.Uint64(u1[8:])
fmt.Printf("%x %x
", l1, l2)
fmt.Printf("%v %v
", l1, l2)
}