小编cop*_*Man的帖子

Golang随机数生成器如何正确播种

我试图在Go中生成一个随机字符串,这是我到目前为止编写的代码:

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)
}
Run Code Online (Sandbox Code Playgroud)

我的实施很慢.播种使用time在一定时间内带来相同的随机数,因此循环一次又一次地迭代.我该如何改进我的代码?

random go

146
推荐指数
6
解决办法
11万
查看次数

标签 统计

go ×1

random ×1