rand.Seed
- 开源代码注释:
1>. Seed uses the provided seed value to initialize the default Source to a deterministic state.将default source初始化为确定状态
2>. 若未明确使用Seed,默认是Seed(1) - 主要作用,通过代码看会比较清晰
- rand.Seed(5)
1> 输出(每次可以获取到不同的int):func main() { rand.Seed(5) var i int for i < 3 { fmt.Printf("rand int is %v\n", rand.Int()) i++ } }
2> 程序终止重新运行后,输出相同。rand int is 1611860416 rand int is 455955407 rand int is 1985665274
- rand.Seed(1)
1> 输出(每次可获取到不同的int):func main() { rand.Seed(1) var i int for i < 3 { fmt.Printf("rand int is %v\n", rand.Int()) i++ } }
2> 程序终止重新运行,输出结果相同rand int is 134020434 rand int is 1597969999 rand int is 1721070109
3> 注释掉后,输出结果仍然相同(不写时默认Seed(1))// rand.Seed(1)
- 为使每次运行时得到的随机数均不相同,一般已当前时间戳作为Seed()的value值
rand.Seed(time.Now().UnixNano())