在Go lang生成固定长度的随机数

时间:2018-01-10 07:33:48

标签: go random

我需要在Golang中生成一个唯一的随机数。我有一个简单的ruby代码:

(0...16).map { rand(10).to_s }.join

所以,实际上,我需要生成一个长度为16的数字,其中每个数字从[0-9]中随机选取。我不明白random.Intn(n)函数如何帮助我。不知道怎么办?

1 个答案:

答案 0 :(得分:2)

一种方法是:

s := ""
for i := 0; i < 16; i++ {
    s += (string)(rand.Intn(10) + 48)
}

48是0的ascii值。

或者使用@Flimzy更有效的建议:

s := fmt.Sprintf("%016d", rand.Int63n(1e16))

其中"%016d"将使用零填充数字。