如何在golang中切掉uuid?

为了制作半随机的子弹,我想使用uuid的前8个字符。所以我有

import (

fmt

"github.com/satori/go.uuid"

)

u1 := uuid.NewV4()

fmt.Println("u1 :", u1)

runes := []rune(u1)

slug := string(runes[0:7])

但是在编译时我得到这个错误:

无法将u1(类型为uuid.UUID)转换为类型[] rune

我该如何解决?

回答:

在该程序包中(我只是看过源代码),UUID是的别名[16]byte,因此您无法将其协调为符文数组,而不是您想要的。

试试这个:

s := hex.EncodeToString(u1.Bytes()[:4])

这将为您提供8个十六进制数字。但是,这仍然是一种回旋处事方式。v4

UUID除某些位外都是随机的,因此,如果您不使用整个UUID,则只需生成4个随机字节即可。使用中的Read()函数math/rand(必须为种子)或crypto/rand(UUID库使用的函数)。

b := make([]byte, 4)

rand.Read(b) // Doesn’t actually fail

s := hex.EncodeToString(b)

以上是 如何在golang中切掉uuid? 的全部内容, 来源链接: utcz.com/qa/399892.html

回到顶部