Ai
1 Star 1 Fork 0

ksc-klog/klog-go-sdk

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
uuid.go 831 Bytes
一键复制 编辑 原始数据 按行查看 历史
xuqiang2 提交于 2022-10-13 20:38 +08:00 . fix
package klog
import (
"crypto/rand"
"encoding/hex"
"io"
)
type uUid [16]byte
var rander = rand.Reader
func newUUID() uUid {
uuid, err := newRandomFromReader(rander)
if err != nil {
return uUid{}
}
return uuid
}
func newRandomFromReader(r io.Reader) (uUid, error) {
var uuid uUid
_, err := io.ReadFull(r, uuid[:])
if err != nil {
return uUid{}, err
}
uuid[6] = (uuid[6] & 0x0f) | 0x40
uuid[8] = (uuid[8] & 0x3f) | 0x80
return uuid, nil
}
func (uuid uUid) String() string {
var buf [36]byte
encodeHex(buf[:], uuid)
return string(buf[:])
}
func encodeHex(dst []byte, uuid uUid) {
hex.Encode(dst, uuid[:4])
dst[8] = '-'
hex.Encode(dst[9:13], uuid[4:6])
dst[13] = '-'
hex.Encode(dst[14:18], uuid[6:8])
dst[18] = '-'
hex.Encode(dst[19:23], uuid[8:10])
dst[23] = '-'
hex.Encode(dst[24:], uuid[10:])
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/klogsdk/klog-go-sdk.git
git@gitee.com:klogsdk/klog-go-sdk.git
klogsdk
klog-go-sdk
klog-go-sdk
v0.5.1

搜索帮助