Avatar ·

Como gerar uma string aleatória de comprimento específico em Go?

Olá a todos! Comecei a estudar Go recentemente e me deparei com uma tarefa: preciso gerar strings aleatórias de comprimento fixo, por exemplo, para criar senhas temporárias ou identificadores de sessão. Tentei usar o pacote `math/rand` e simplesmente selecionar caracteres aleatórios de um conjunto de letras, mas me deparei com um problema — as strings não ficam totalmente aleatórias e às vezes até se repetem. Aqui está meu código atual: ```go package main import ( "fmt" "math/rand" ) func main() { fmt.Println(randString(10)) } func randString(n int) string { var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") b := make([]rune, n) for i := range b { b[i] = letters[rand.Intn(len(letters))] } return string(b) } ``` O problema é que, a cada execução do programa, obtenho a mesma string, a menos que chame `rand.Seed`. Li que no Go 1.20 o `math/rand` é inicializado automaticamente, mas ainda não tenho certeza se essa é a melhor abordagem.