J'essaie de générer une chaîne aléatoire dans Go et voici le code que j'ai écrit jusqu'à présent:
package main
import (
"bytes"
"fmt"
"math/rand"
"time"
)
func main() {
fmt.Println(randomString(10))
}
func randomString(l int) string {
var result bytes.Buffer
var temp string
for i := 0; i < l; {
if string(randInt(65, 90)) != temp {
temp = string(randInt(65, 90))
result.WriteString(temp)
i++
}
}
return result.String()
}
func randInt(min int, max int) int {
rand.Seed(time.Now().UTC().UnixNano())
return min + rand.Intn(max-min)
}
Ma mise en œuvre est très lente. L'amorçage en utilisant time
apporte le même nombre aléatoire pendant un certain temps, de sorte que la boucle se répète encore et encore. Comment puis-je améliorer mon code?