Tôi đang cố gắng tạo một chuỗi ngẫu nhiên trong Go và đây là mã tôi đã viết cho đến nay:
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)
}
Việc thực hiện của tôi rất chậm. Việc sử dụng seeding time
mang lại cùng một số ngẫu nhiên trong một thời gian nhất định, do đó vòng lặp lặp đi lặp lại. Làm thế nào tôi có thể cải thiện mã của tôi?