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.