官方文档地址:https://golang.google.cn/pkg/math/rand/
代码案例如下:
1. 获取整数的随机
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
num1 := rand.Int() // 返回非负伪随机int类型数据
fmt.Println(num1)
for i := 0; i < 10; i++ {
num := rand.Intn(10) // 生成指定范围的随机数[0, 10)
fmt.Println(num)
}
// 注,只要不设置种子,每次运行产生的随机数固定
rand.Seed(1) // 设置随机种子
num2 := rand.Intn(10) // 生成随机数
fmt.Println("--->", num2)
// 可以通过设置时间作为随机数种子,使得每次产生的随机数不同
t1 := time.Now()
fmt.Println(t1) // 查看时间
fmt.Printf("%T\n", t1) // 查看变量t1的数据类型
// 获取时间戳(当前时间距离1970 1-1 00:00:00之间的数值)
timeStamp1 := t1.Unix() // 秒s为单位
timeStamp2 := t1.UnixNano() // 纳秒ms为单位
fmt.Println(timeStamp1)
fmt.Println(timeStamp2)
// 真正生成随机数过程
// step1:设置种子数,可以设置时间戳
rand.Seed(time.Now().UnixNano())
for i:=1;i<10;i++{
// step2:生成随机数
fmt.Println("--->", rand.Intn(100))
}
// 获取指定范围内的随机数,如获取[15, 48]之间的随机数
num3:= rand.Intn(34) + 15 // n:为两数之差+1,然后加上起始数值即可
fmt.Println(num3)
}