Git Product home page Git Product logo

Comments (2)

pborman avatar pborman commented on May 5, 2024

Yes, that is the correct understanding.

The original uuid package (github.com/pborman/uuid) was based on slices has the following function:

func Parse(s string) UUID

This package had to change this to:

func Parse(s string) (UUID, error)

If you have a type that contains an optional UUID nothing special needs to be added for a byte slice representation:

type S struct {
        ID uuid.UUID
}

if s.ID != nil {
        fmt.Printf("ID is %v\n", s.ID)
}

With an array it becomes be one of

type S1 struct {
        ID     uuid.UUID
        HaveID bool
}
type S2 struct {
        ID *uuid.UUID
}

if s1.HaveID {
        fmt.Printf("ID is %v\n", s1.ID)
}
if s2.ID != nil {
        fmt.Printf("ID is %v\n", *s2.ID)
}

This is the only reason that there is both a github/pborman/uuid package and a github/google/uuid package (the pborman version is the original, the google version addresses the desire of making UUIDs comparable objects by switch from a slice to an array. It changes the code from:

if uuid.Compare(uuid1, uuid2) {

to

if uuid1 == uuid2 {

and also allows UUIDs to be used as keys in a map.

from uuid.

shawnps avatar shawnps commented on May 5, 2024

@pborman I see, thank you for the clarification! I'll close this issue out.

from uuid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.