解读rand.Seed(time.Now().UnixNano())的作用及说明

 更新时间:2023年03月03日 14:17:17   作者:wongyaa  
这篇文章主要介绍了关于rand.Seed(time.Now().UnixNano())的作用及说明,具有很好的参考价值,希望对大家有所帮助。

rand.Seed(time.Now().UnixNano())作用

  • rand.Int

获取随机数,不加随机种子,每次遍历获取都是重复的一些随机数据

rand.Seed(time.Now().UnixNano())

设置随机数种子,加上这行代码,可以保证每次随机都是随机的

golang rand seed 随机数

rand.Seed(time.Now().UnixNano())
randInsert := rand.Intn(4) // [0, 4)

 如果每次调rand.Intn()前都调了rand.Seed(x),每次的x相同的话,每次的rand.Intn()也是一样的。

两种解决方案

1. 只调一次rand.Seed():在全局初始化调用一次seed,每次调rand.Intn()前都不再调rand.Seed()。

2. 调多次rand.Seed(x),但每次x保证不一样:每次使用纳秒级别的种子。强烈不推荐这种,因为高并发的情况下纳秒也可能重复。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Golang基于epoll实现最简单网络通信框架

    Golang基于epoll实现最简单网络通信框架

    这篇文章主要为大家详细介绍了Golang如何基于epoll实现最简单网络通信框架,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习学习
    2023-06-06
  • 详解Go内存模型

    详解Go内存模型

    这篇文章主要介绍了Go 内存模型的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Golang字符串的拼接方法汇总

    Golang字符串的拼接方法汇总

    字符串拼接在日常开发中是很常见的需求,今天我们来探讨下如何用golang来实现字符串的拼接
    2018-10-10
  • Golang并发编程之Channel详解

    Golang并发编程之Channel详解

    传统的并发编程模型是基于线程和共享内存的同步访问控制的,共享数据受锁的保护,使用线程安全的数据结构会使得这更加容易。本文将详细介绍Golang并发编程中的Channel,,需要的朋友可以参考下
    2023-05-05
  • golang整合jwt的实现示例

    golang整合jwt的实现示例

    json web tokens(jwt)已成为大多数web api设计中的常见身份验证和授权方案之一,本文主要介绍了golang整合jwt的实现示例,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • golang中的string与其他格式数据的转换方法详解

    golang中的string与其他格式数据的转换方法详解

    这篇文章主要介绍了golang中的string与其他格式数据的转换方法,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-10-10
  • go之如何设置GOROOT和GOPATH

    go之如何设置GOROOT和GOPATH

    这篇文章主要介绍了go之如何设置GOROOT和GOPATH问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Golang使用CGO与Plugin技术运行加载C动态库

    Golang使用CGO与Plugin技术运行加载C动态库

    这篇文章主要介绍了Golang使用CGO与Plugin技术运行加载C动态库,Golang 程序在运行时加载C动态库的技术,跳过了Golang项目编译阶段需要链接C动态库的过程,提高了Golang项目开发部署的灵活性
    2022-07-07
  • Golang中的错误处理的示例详解

    Golang中的错误处理的示例详解

    这篇文章主要为大家详细介绍了Golang中的错误处理的相关资料,文章中的示例代码讲解详细,对我们学习Golang有一定帮助,需要的可以参考一下
    2022-12-12
  • Golang表示枚举类型的详细讲解

    Golang表示枚举类型的详细讲解

    go 语言枚举类型是这么用的?在什么场景下会用到枚举?本文对 go 语言枚举做了详细讲解,感兴趣的朋友跟随小编一起看看吧
    2021-09-09

最新评论