Go的math/rand包提供了生成随机数的API,具体用法可通过go doc rand 查询
生成随机数时,以当前时间作为随机种子是个很好的选择,可以用time包生成当前时间,下面两个函数都可以:
func Now() Time //返回当前时间func (t Time) Unix() int64 //返回从1970年1月1日到t的秒数func (t Time) UnixNano() int64 //返回1970年1月1日到t的秒数
1、下面例子表示通过Unix时间函数来生成随机数,如图:

运行结果如下:

从上图可以看出,调用了rand的Seed函数,此函数用于设置随机种子,如果不调用此函数,那么默认的种子值为1,由于随机数是固定的,如果每次都以1为随机种子开始产生随机数,那么结果都是一样的,因此需要此函数来设置随机种子。
注意:有一个可能出现的问题,如果在高并发的情况下,一般不建议使用rand包来设置随机数,因为在高并发的情况下,可能会出现时间相同的情况,就会出现相同的随机数,如果是普通的小并发情况下,每次的随机数都是不同的。
文章转载自运维DevOps,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




