Golang 提供了一个包 math/rand 来生成伪随机数。这个包基本上使用一个单一的源,每次执行程序时都会产生一个确定性的值序列。在这里,如果每次执行需要不同的输出或结果,您可以使用种子函数来初始化默认源,这对于多个 goroutine 并发使用是安全的。它在 0 和 n 的区间内生成一个整数。它只需要一个参数,即 n 或上限,如果参数小于零,则抛出错误。
RandomIntegerwithinRange:生成范围内的数字,其中最大值为上限,最小值为下限。
rand.Float64():生成0.0到1.0之间的浮点数,使用起来和rand.Int一样简单。
例子:
输出:
如果用户想对随机数保密,上述方法是不安全的。这就是为什么 Golang 提供Crypto rand来改变未来数字的随机性水平。它是加密准备使用和安全的,但速度较慢。它用于生成密钥、CSRF 令牌或任何与安全相关的东西。
例子:
当您执行此代码时,每次都会得到不同的输出。