go多种uuid生成方式
2024-09-22 10:50:55
package main import (
"fmt"
"github.com/chilts/sid"
"github.com/kjk/betterguid"
"github.com/oklog/ulid"
"github.com/rs/xid"
"github.com/satori/go.uuid"
"github.com/segmentio/ksuid"
"github.com/sony/sonyflake"
"log"
"math/rand"
"time"
) func genXid() {
id := xid.New()
fmt.Printf("github.com/rs/xid: %s\n", id.String())
} func genKsuid() {
id := ksuid.New()
fmt.Printf("github.com/segmentio/ksuid: %s\n", id.String())
} func genBetterGUID() {
id := betterguid.New()
fmt.Printf("github.com/kjk/betterguid: %s\n", id)
} func genUlid() {
t := time.Now().UTC()
entropy := rand.New(rand.NewSource(t.UnixNano()))
id := ulid.MustNew(ulid.Timestamp(t), entropy)
fmt.Printf("github.com/oklog/ulid: %s\n", id.String())
} func genSonyflake() {
flake := sonyflake.NewSonyflake(sonyflake.Settings{})
id, err := flake.NextID()
if err != nil {
log.Fatalf("flake.NextID() failed with %s\n", err)
}
fmt.Printf("github.com/sony/sonyflake: %x\n", id)
} func genSid() {
id := sid.Id()
fmt.Printf("github.com/chilts/sid: %s\n", id)
} func genUUIDv4() {
id,err := uuid.NewV4()
if err != nil {
fmt.Printf("get uuid error [%s]",err)
}
fmt.Printf("github.com/satori/go.uuid: %s\n", id)
} func main() {
genXid()
genKsuid()
genBetterGUID()
genUlid()
genSonyflake()
genSid()
genUUIDv4()
}
最新文章
- GSM07.10协议中串口复用使用的校验算法
- 关于项目中owl文件中的类定义和属性定义
- JS 关于(function( window, undefined ) {})(window)写法的理解
- Linux之Shell的算术运算
- 简单通过java的socket&;serversocket以及多线程技术实现多客户端的数据的传输,并将数据写入hbase中
- 自己写ORM框架 SqlHelper_DG C#(java的写在链接里)
- Union的妙用和注意
- [Angular 2] ElementRef, @ViewChild &; Renderer
- 在centos中创建nginx启动脚本
- The Sorrows of Young Werther
- lr 和 Qtp 视频连接
- mysql事物处理
- CCNA+NP学习笔记—交换网络篇
- The struts dispatcher cannot be found
- 【一天一道LeetCode】#34. Search for a Range
- Django ORM操作补充
- cocos2dx spine之一 :spine缓存 (c++ &; lua)
- 为什么有时候在mac中启动一些应用时会跳的Windows中
- “数学口袋精灵”App的第二个Sprint计划----开发日记
- 使用openssl生成SSL证书完全参考手册