我试图在Go中生成随机数(整数),但无济于事。我发现crypto/rand
中的rand
包,这似乎是我想要的,但我无法从文档中告诉如何使用它。这就是我想现在:在Go中生成随机数
b := []byte{}
something, err := rand.Read(b)
fmt.Printf("something = %v\n", something)
fmt.Printf("err = %v\n", err)
但不幸的是这总是输出:
something = 0
err = <nil>
有没有办法解决这个问题,以便它实际上产生的随机数?另外,有没有办法设置这个随机数的上限呢?
我预计日常填补阵列'B'用随机字节,但是你问了很多。 – sarnold 2011-05-30 22:33:04
我也是 - 我只是新手,并不熟悉调用约定等。 – 2011-05-31 00:18:44
它会填充'b',但是'b'是一个空片(并且支持数组的大小为0)。所以rand.Read()没有空间来存储任何东西,并且在你的'something'变量中返回0,表示没有存储任何内容。 'b:= make([] byte,4)'会更合适,允许rand.Read在b – nos 2011-06-06 12:01:44