需求
10以内随机生成2个幸运数字。
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println("My first lucky number is", rand.Intn(10))
fmt.Println("My senond lucky number is", rand.Intn(10))
}
输出如下:
My first lucky number is 1
My senond lucky number is 7
在本环境中,不论编译运行多少次,都是这个输出。
为什么没有产生随机的效果呢?
rand.Intn
添加种子:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().Unix())
fmt.Println("My first lucky number is", rand.Intn(10))
fmt.Println("My senond lucky number is", rand.Intn(10))
}
效果:(多次编译运行效果不同)
My first lucky number is 6
My senond lucky number is 8
rand.Seed(time.Now().UnixNano())作用
rand.Intn
rand.Seed(time.Now().UnixNano())