暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

go语言之生成随机数

运维DevOps 2022-12-13
395

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论