golang中的随机

304 阅读1分钟

生成随机的随机数

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

func main() {
    // 用时间戳做seed
    rand.seed(time.Now().UnixNano())
    // 0-100的随机数
    fmt.printf("%d\n", rand.Intn(100)) 
    // 随机数
    fmt.printf("%d\n", rand.Int())
}

洗牌算法

把一个切片打乱顺序,使用rand.Shuffle

rand.Seed(time.Now().UnixNano())
rand.Shuffle(len(rs.VideoList), func(i, j int) {
   rs.VideoList[i], rs.VideoList[j] =
      rs.VideoList[j], rs.VideoList[i]
})