亂數

Golang 基礎: 亂數

產生亂數

// 產生亂數種子
rand.Seed(time.Now().UnixNano())
// 1648566969196745000
fmt.Println(rand.Int())

隨機取清單資料

package main

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

// 員工清單
var EmployeeList = []string{
	"Kay",
	"Jay",
	"KJ",
}

type Generator struct {
	rand *rand.Rand
}

// 產生名稱
func (generator *Generator) Name() string {
	// 清單長度
	length := len(EmployeeList)

	// 隨機取清單資料
	return EmployeeList[generator.rand.Intn(length)]
}

// 建立產生器
func CreateEmployeeGenerator() Generator {
	// 產生種子
	r := rand.New(rand.NewSource(time.Now().UnixNano()))

	// 設定產生器種子
	return Generator{
		rand: r,
	}
}

func main()
  // 建立產生器
	EmployeeGenerator := CreateEmployeeGenerator()

  // 隨機列印清單資料
	for i := 0; i < 10; i++ {
		fmt.Println(EmployeeGenerator.Name())
	}
}

最後輸出的資料是隨機的清單資料

Jay
Jay
Jay
KJ
Kay
Kay
KJ
KJ
Kay
KJ