官方文檔地址: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)
}