【语言知识】rand.Seed --golang
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)
func main() {
rand.Seed(5)
var i int
for i < 3 {
fmt.Printf("rand int is %vn", rand.Int())
i++
}
}
1> 输出(每次可以获取到不同的int):rand int is 1611860416
rand int is 455955407
rand int is 1985665274
2> 程序终止重新运行后,输出相同。 - rand.Seed(1)
func main() {
rand.Seed(1)
var i int
for i < 3 {
fmt.Printf("rand int is %vn", rand.Int())
i++
}
}
1> 输出(每次可获取到不同的int):rand int is 134020434
rand int is 1597969999
rand int is 1721070109
2> 程序终止重新运行,输出结果相同
3> 注释掉后,输出结果仍然相同(不写时默认Seed(1))// rand.Seed(1)