面试题答案
一键面试在Go语言中,math/rand
包用于生成伪随机数。为了安全地生成随机数,通常使用crypto/rand
包。以下是如何使用crypto/rand
包初始化安全的随机数生成器并生成一个指定范围内的随机整数的示例代码:
package main
import (
"crypto/rand"
"fmt"
"math/big"
)
func main() {
// 生成一个最大为100(不包括100)的随机数
max := big.NewInt(100)
result, err := rand.Int(rand.Reader, max)
if err != nil {
fmt.Println("生成随机数错误:", err)
return
}
fmt.Println("生成的随机数:", result.Int64())
}
- 引入包:引入
crypto/rand
用于安全的随机数生成,fmt
用于输出,math/big
用于处理大整数。 - 设定范围:使用
big.NewInt
设定随机数的最大值(这里是100)。 - 生成随机数:通过
rand.Int
函数,第一个参数rand.Reader
是一个安全的随机数源,第二个参数是最大值。 - 错误处理与输出:如果生成随机数过程中有错误,打印错误信息;否则,输出生成的随机数。