golang中生成随机数可以使用rand
提供的相关接口,但是需要注意的是,rand必须要指定一个种子,一般采用当前时间的纳秒。
func New(src Source) *Rand {
s64, _ := src.(Source64)
return &Rand{src: src, s64: s64}
}
func NewSource(seed int64) Source {
var rng rngSource
rng.Seed(seed)
return &rng
}
通过上述两个接口,生成一个Rand对象,然后通过他来生成随机数:
random := rand.New(rand.NewSource(time.Now().UnixNano()))
for i:=0;i<30;i++ {
fmt.Printf("%d " ,random.Intn(9))
}
func (r *Rand) Intn(n int)
指定生成一个在区间[0,n)的整数
func (r *Rand) Float32() float32
返回一个[0.0,1.0)的随机小叔