Avatar ·

Como gerar UUID em Go? Não tem função embutida?

Olá a todos! Comecei a estudar Go agora e me deparei com uma tarefa: preciso gerar identificadores únicos (UUID) para registros no banco de dados. Em Python, estou acostumado a usar `uuid.uuid4()`, mas em Go, por mais que procurei na biblioteca padrão, não encontrei nada parecido. Apenas `crypto/rand` para números aleatórios e `fmt.Sprintf` para formatação. Tentei escrever minha própria implementação — apenas gerar 16 bytes aleatórios e colocar os hífens manualmente, como no formato padrão de UUID. Mas, primeiro, parece deselegante e, segundo, não tenho certeza se os bytes vão corresponder à versão 4 do UUID (aleatório). Meu código: ```go package main import ( "crypto/rand" "fmt" ) func main() { b := make([]byte, 16) _, err := rand.Read(b) if err != nil { panic(err) } uuid := fmt.Sprintf("%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:]) fmt.Println(uuid) } ``` Esse código funciona, mas ele não define a versão e o variant corretos do UUID (os bits