go一个不错的uuid库

谷歌出品的go语言uuid库github.com/google/uuid,按国际惯例,先看示例。

生成纯数字类型uuid

package main

import (
	"fmt"

	"github.com/google/uuid"
)

func main() {
	u1 := uuid.New()
	u2, _ := uuid.NewRandom()
	fmt.Println(u1.ID())
	fmt.Println(u2.ID())
}

/* -- 输出 --
3507369127
1284741309
*/

生成字符串类型uuid

package main

import (
	"fmt"

	"github.com/google/uuid"
)

func main() {
	u1 := uuid.New()
	u2, _ := uuid.NewRandom()
	fmt.Println(u1.String())
	fmt.Println(u2.String())
}

/* -- 输出 --
494e09ff-29ec-426a-a3a1-362078085557
8451e91a-4251-4cb8-ac82-6bd1fb684a61
*/

完整文档👈

使用简单,支持纯数字和字符串类型,但是纯数字类型不保证递增。

GitHub上还有一个uuid库github.com/satori/go.uuid,但是只能生成字符串类型的uuid。

package main

import (
	"fmt"

	"github.com/satori/go.uuid"
)

func main() {
	u1 := uuid.NewV4()
	fmt.Println(u1.String())
}

/* -- 输出 --
36a657b9-f529-4037-b6f7-9a1cb8060996
*/
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到了关于函数uuid.NewV4()的使用问题,即这个函数返回多个值,但在使用时只将其当作一个返回值使用了。例如,错误的使用方式是sha1 := uuid.NewV4().String(),而正确的使用方式是uid,_ := uuid.NewV4(),然后再通过uid来获取字符串形式的UUID,即sha1 := uid.String()。 引用中介绍了UUID的基本分类,包括v1、v2、v3、v4、v5和v6。uuid.NewV1()基于当前时间戳和MAC地址生成UUIDuuid.NewV2()基于POSIX UID/GID生成DCE安全UUIDuuid.NewV3()基于命名空间UUID和名称的MD5哈希生成UUIDuuid.NewV4()生成随机UUIDuuid.NewV5()基于命名空间UUID和名称的SHA-1哈希生成UUID,而uuid.NewV6()在更新版本之前与uuid.NewV5()本质上没有差距。同时,还提到了Must函数是对uuid.NewV5()的包装。 而引用中提到了一个问题,即multiple-value uuid.NewV4() in single-value context。这个问题可能是由于在单值上下文中使用了返回多个值的uuid.NewV4()函数。 综上所述,uuid.NewV4()是用于生成随机UUID的函数,使用时需要注意其返回值的处理方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [go编译错误及解决方式](https://blog.csdn.net/zhuyunfei/article/details/79191068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Golang常用UUID](https://blog.csdn.net/Zuko_chen/article/details/130037754)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值