Go语言学习之旅20——生成随机数

生成随机数我们需要设置一个随机数的seed(种子),不过要注意的是,相同的seed每次生成的随机数是同一组的

为了保证随机数能够更加随机且无规律,我们可以使用当前时间作为随机数的seed

具体看代码:

1
2
3
4
5
6
7
8
9
10
11
12
func main() {
rand.Seed(time.Now().UnixNano()) // 设置种子数为当前时间
for i := 0; i < 5; i++ {
fmt.Println(rand.Int()) // 生成一组大数随机数
}
}

// 8850436535121827008
// 6377841482169103266
// 4457291880434124677
// 3123534825015967222
// 3174816732139892017

我们可以这样指定其生成的范围,以免数字过大:

1
2
3
4
5
6
7
8
9
10
11
12
func main() {
rand.Seed(time.Now().UnixNano())
for i := 0; i < 5; i++ {
fmt.Println(rand.Intn(10)) // 生成一组[0,9]范围内的整数作为随机数
}
}

// 8
// 7
// 2
// 9
// 0