rand.Intn() 函数是个伪随机函数,不管运行多少次都只会返回同样的随机数,因为它默认的资源就是单一值,所以必须调用 rand.Seed(), 并且传入一个变化的值作为参数,如 time.Now().UnixNano() , 就是可以生成时刻变化的值。rand.Intn(n) 返回值为 [0,n) 之间的整数。

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	// 初始化随机数的资源库, 如果不执行这行, 不管运行多少次都返回同样的值
	rand.Seed(time.Now().UnixNano())

	// rand.Intn(100) 返回随机值为 0-99
	fmt.Println("A number from 1-100:", 1+rand.Intn(100))
}

原文作者:Rachel
转自链接:https://learnku.com/articles/26011