Comments (4)
If it doesn't exsit, adding Compare()
or maybe Equal()
as a method to the UUID type might be interesting too like:
if myuuid.Equal(theiruuid) {
// do stuff
}
from uuid.
@ayang64 For equality it just is myuuid == theiruuid
. Making UUIDs be comparable for equality is actually the reason that github.com/google/uuid
was forked from github.com/pborman/uuid
. The latter has now been rewritten to be a wrapper around the former. The former represents a UUID as an array while that latter (original) used a slice.
A Compare
function (as in strings
and bytes
) would aid in ordering UUIDs.
@it512 Is there motivation for Compare
beyond that it exists in strings
and bytes
?
from uuid.
@pborman - d'oh! thank you. i didn't consider that while i was typing.
from uuid.
sort and search
for exp.
package main
import (
"bytes"
"log"
"slices"
"github.com/google/uuid"
)
func Compare(a, b uuid.UUID) int {
return bytes.Compare(a[:], b[:])
}
var uuids = []uuid.UUID{uuid.Max, uuid.Nil, uuid.New(), uuid.New()}
func main() {
slices.SortFunc(uuids, Compare)
log.Println(uuids)
i, _ := slices.BinarySearchFunc(uuids, uuid.Max, Compare)
log.Println(i)
log.Println(uuids[i])
}
output
2024/06/30 22:36:00 [00000000-0000-0000-0000-000000000000 c0ad65fa-53a0-44e6-b605-95b4b83d2481 f9b73b88-da50-480b-acad-f41c820b57c7 ffffffff-ffff-ffff-ffff-ffffffffffff]
2024/06/30 22:36:00 3
2024/06/30 22:36:00 ffffffff-ffff-ffff-ffff-ffffffffffff
from uuid.
Related Issues (20)
- 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 2
- panic: uuid: Parse(): invalid UUID length: 0 HOT 3
- Should uuid.Nil marshal to null instead of all zeroes HOT 5
- 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 HOT 2
- Monotonicity in UUIDv7 HOT 2
- Incorrect uuidv6 implementation HOT 1
- uuid.Parse function does not handle empty string HOT 3
- uuid.NewString use UUID v7 instead of v4 HOT 6
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.