Comments (2)
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.
@pborman I see, thank you for the clarification! I'll close this issue out.
from uuid.
Related Issues (20)
- Equals method HOT 1
- Reference implementaiton for UUID v8 HOT 2
- Is there a method to generate empty UUID v4? HOT 2
- UUID with repeat ending HOT 2
- NullUUID Scan method returns valid true on empty string HOT 2
- [Documentation] uuid.Nil is not documented properly
- `IsZero()` and `ToNullUUID` Helper Functions HOT 1
- panic: uuid: Parse(): invalid UUID length: 0 HOT 1
- Should uuid.Nil marshal to null instead of all zeroes HOT 3
- Make uuid.Nil and other values as a constant HOT 1
- Cannot get the package, connection refused
- uuid.Parse allows invalid UUID's HOT 2
- recommended to add uuid v6 and v7 support HOT 1
- Validate UUID without creating UUID (and underlying byte array)
- Limit permissions for github workflows
- uuid.Parse Function Does Not Handle Leading/Trailing Spaces in UUIDs
- Monotonicity in UUIDv7 HOT 2
- proposal: add func uuid.Compare(a, b UUID) int
- Incorrect uuidv6 implementation HOT 1
- not able to install uuid package HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uuid.