Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Golang如何使用math/rand生成随机数_Golang math/rand随机数生成实践详解_创想鸟

Golang如何使用math/rand生成随机数_Golang math/rand随机数生成实践详解

必须初始化种子以避免重复序列,推荐用时间戳;2. Go 1.20 后 Seed 已废弃,建议创建 rand.Rand 实例;3. 可生成整数、浮点数、布尔值及字符串;4. 高并发下应使用 sync.Pool 避免性能瓶颈;5. 非加密场景使用 math/rand,加密需用 crypto/rand。

golang如何使用math/rand生成随机数_golang math/rand随机数生成实践详解

在Go语言中,math/rand 包是生成伪随机数的主要工具。虽然它不适用于加密场景,但在大多数日常应用如游戏、模拟、测试数据生成等场景下非常实用。本文将详细介绍如何正确使用 math/rand 生成随机数,并避免常见误区。

初始化随机数生成器(必须设置种子)

Go的 rand.Intn() 等函数默认使用一个全局的共享随机源,如果不设置种子,每次运行程序都会生成相同的“随机”序列。

为避免这种情况,需要使用 rand.Seed() 初始化随机源。推荐使用当前时间作为种子:

import (    "math/rand"    "time")func init() {    rand.Seed(time.Now().UnixNano())}

从 Go 1.20 开始,rand.Seed() 已被标记为废弃,因为现代版本的Go在首次调用时会自动使用 runtime 随机性初始化。但如果你希望确保行为可预测或手动控制,仍建议显式设置源。

立即学习“go语言免费学习笔记(深入)”;

更现代的做法是创建自己的 rand.Rand 实例:

r := rand.New(rand.NewSource(time.Now().UnixNano()))num := r.Intn(100) // 生成 0-99 的随机整数

生成不同类型的随机数

通过自定义的 *rand.Rand 实例,可以灵活生成各种类型的随机值:

随机整数(指定范围): 使用 Intn(n) 生成 [0, n) 范围内的整数 随机浮点数: 使用 Float64() 生成 [0.0, 1.0) 之间的浮点数 随机布尔值: 使用 Intn(2) == 1 模拟抛硬币

r := rand.New(rand.NewSource(time.Now().UnixNano()))fmt.Println(r.Intn(10))        // 0~9fmt.Println(r.Float64())       // 0.0 ~ 1.0fmt.Println(r.Intn(2) == 1)    // true or false

生成随机字符串或字节序列

实际开发中常需生成随机字符串(如验证码、token)。可通过预定义字符集和随机索引实现:

const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"func randomString(n int) string {    b := make([]byte, n)    for i := range b {        b[i] = letters[rand.Intn(len(letters))]    }    return string(b)}

若需更高性能或并发安全,可结合 sync.Pool 或使用 crypto/rand(用于安全场景)替代。

并发安全与性能考虑

全局的 rand 函数(如 rand.Intn)是并发安全的,但所有goroutine共享同一个锁,高并发下可能成为瓶颈。

解决方案:每个goroutine使用独立的 *rand.Rand 实例:

var src = rand.NewSource(time.Now().UnixNano())var localRand = sync.Pool{    New: func() interface{} {        return rand.New(src)    },}func getRandomInGoroutine() int {    r := localRand.Get().(*rand.Rand)    n := r.Intn(100)    localRand.Put(r)    return n}

基本上就这些。只要记住初始化种子、合理选择类型、注意并发场景,math/rand 就能稳定可靠地工作。对于加密用途,请改用 crypto/rand。

以上就是Golang如何使用math/rand生成随机数_Golang math/rand随机数生成实践详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1419896.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Golang如何在Linux下配置环境变量和路径
上一篇 2025年12月16日 13:34:08
如何在Golang中处理多文件并发读写_Golang多文件并发读写方法汇总
下一篇 2025年12月16日 13:34:18

相关推荐

  • Debian回收机制是否完善

    Debian回收机制是否完善Debian回收机制是否完善Debian回收机制是否完善Debian回收机制是否完善

    Debian 6 (Squeeze) 作为长期支持版本,其文件管理机制与现代操作系统略有不同。它没有内置的回收站功能,但这并不意味着缺乏文件恢复能力。Debian 6 提供多种替代方案来保护和恢复误删文件。 文件恢复方法: 隐藏的垃圾文件夹: Debian 6 使用隐藏的 .local/share/…

    2026年9月25日 • 用户投稿
    000
  • 为什么有些硬件参数在官方宣传中总是模糊不清?

    为什么有些硬件参数在官方宣传中总是模糊不清?为什么有些硬件参数在官方宣传中总是模糊不清?为什么有些硬件参数在官方宣传中总是模糊不清?为什么有些硬件参数在官方宣传中总是模糊不清?

    厂商模糊硬件参数主要出于制造差异、竞争策略和营销灵活性。半导体生产存在体质差异,通过“binning”分级后需用“最高可达”等表述覆盖全合格品,避免售后风险;同时防止竞争对手轻易获取技术细节,保持领先优势;还能为后续优化留空间,适应市场变化。此外,复杂参数不易被大众理解,模糊化有助于简化宣传。面对此…

    2026年9月25日 • 用户投稿
    200
  • Gemini是否能导出成思维导图 AI生成内容结构化展示方式详解

    Gemini是否能导出成思维导图 AI生成内容结构化展示方式详解Gemini是否能导出成思维导图 AI生成内容结构化展示方式详解Gemini是否能导出成思维导图 AI生成内容结构化展示方式详解Gemini是否能导出成思维导图 AI生成内容结构化展示方式详解

    针对“gemini是否能导出成思维导图 ai生成内容结构化展示方式详解”这一问题,本文将详细阐述如何利用gemini生成有助于构建思维导图的结构化内容,并介绍如何配合外部工具完成思维导图的制作。您将了解到gemini作为一款大型语言模型,其主要输出形式是文本。它并不具备直接生成或导出图形化思维导图文…

    2026年9月25日 • 用户投稿
    000
  • vivo浏览器如何彻底删除浏览数据_vivo浏览器完全清除个人浏览数据指南

    vivo浏览器如何彻底删除浏览数据_vivo浏览器完全清除个人浏览数据指南vivo浏览器如何彻底删除浏览数据_vivo浏览器完全清除个人浏览数据指南vivo浏览器如何彻底删除浏览数据_vivo浏览器完全清除个人浏览数据指南vivo浏览器如何彻底删除浏览数据_vivo浏览器完全清除个人浏览数据指南

    首先清除浏览器缓存与历史记录,进入“我的”-“设置”-“清除浏览数据”,勾选浏览历史、缓存文件等项并确认清除;其次通过i管家的“空间清理”功能扫描并清理浏览器残留数据;再者可重置浏览器设置至默认状态,移除个性化配置;最后可卸载并重装vivo浏览器以彻底删除所有数据。 如果您在使用vivo浏览器时希望…

    2026年9月25日 • 用户投稿
    1000
  • 微信小店客服怎么接入?微信小店怎么增加客服

    微信已成为我国最大的社交平台之一。微信小店作为微信电商的重要组成部分,为广大商家提供了便捷的线上销售渠道。为了提升用户体验,商家需要搭建一套高效的客服体系。本文将详细介绍微信小店客服接入方法,帮助商家实现高效服务。 一、微信小店客服接入概述 1. 客服接入方式 微信小店客服接入主要有以下两种方式: …

    2026年9月25日
    100
  • 漫番漫画官网直达_ 漫番漫画在线网页入口

    漫番漫画官网直达_ 漫番漫画在线网页入口漫番漫画官网直达_ 漫番漫画在线网页入口漫番漫画官网直达_ 漫番漫画在线网页入口漫番漫画官网直达_ 漫番漫画在线网页入口

    漫番漫画官网入口为https://manwa.me,平台汇聚冒险、校园、恋爱、奇幻等多类型海量作品,更新速度快,支持高清流畅阅读与离线缓存,界面简洁,具备智能搜索、书架管理及章节提醒功能,优化横向纵向阅读模式、夜间模式与手势翻页,提升用户沉浸体验。 漫番漫画官网直达入口地址在哪里?这是不少网友都关注…

    2026年9月25日 • 用户投稿
    600
  • Wireless Zero配置服务

    Wireless Zero配置服务Wireless Zero配置服务Wireless Zero配置服务Wireless Zero配置服务

    无线零配置服务是一项用于自动管理无线网络连接的系统功能,能够在无需用户手动干预的情况下完成网络接入。 1、 打开控制面板,进入管理工具中的“服务”选项,找到名为 Wireless Zero Configuration 的服务项,双击打开其属性窗口,将启动类型设置为自动或手动,然后点击应用以保存更改。…

    2026年9月25日 • 用户投稿
    500
  • 淘宝直通车的点击收费是如何计算的?调价有什么技巧? 破解扣费黑箱,解锁按关键词效果、流量高峰、预算限制、竞争分析的智能调价术!

    淘宝直通车的点击收费是如何计算的?调价有什么技巧? 破解扣费黑箱,解锁按关键词效果、流量高峰、预算限制、竞争分析的智能调价术!淘宝直通车的点击收费是如何计算的?调价有什么技巧? 破解扣费黑箱,解锁按关键词效果、流量高峰、预算限制、竞争分析的智能调价术!淘宝直通车的点击收费是如何计算的?调价有什么技巧? 破解扣费黑箱,解锁按关键词效果、流量高峰、预算限制、竞争分析的智能调价术!淘宝直通车的点击收费是如何计算的?调价有什么技巧? 破解扣费黑箱,解锁按关键词效果、流量高峰、预算限制、竞争分析的智能调价术!

    在淘宝这个庞大的电商平台上,淘宝直通车是众多商家用于推广商品的重要工具。然而,对于很多商家来说,直通车的点击收费计算方式就像一个神秘的黑箱,不清楚到底是如何扣费的。而且,在出价调价方面也常常摸不着头脑,不知道有哪些技巧可以让自己既获得足够的流量又能控制成本。了解淘宝直通车的点击收费计算以及调价技巧,…

    2026年9月25日 • 用户投稿
    000
  • win10使用Outlook查看邮件时内容显示不全?

    win10使用Outlook查看邮件时内容显示不全?win10使用Outlook查看邮件时内容显示不全?win10使用Outlook查看邮件时内容显示不全?win10使用Outlook查看邮件时内容显示不全?

    许多用户习惯使用outlook来接收和发送电子邮件,但有一部分win10系统的用户在使用outlook浏览邮件时,发现部分邮件在双击标题后弹出窗口显示内容时,后半部分内容却不见了,导致信息无法完整展示。那么,当win10系统中的outlook出现邮件内容显示不全的情况时,应该如何处理呢?接下来,请跟…

    2026年9月25日 • 用户投稿
    400
  • DeepSeek能否生成结构化JSON输出 格式化结果生成方法与适配方式

    DeepSeek能否生成结构化JSON输出 格式化结果生成方法与适配方式DeepSeek能否生成结构化JSON输出 格式化结果生成方法与适配方式DeepSeek能否生成结构化JSON输出 格式化结果生成方法与适配方式DeepSeek能否生成结构化JSON输出 格式化结果生成方法与适配方式

    DeepSeek模型具备生成结构化JSON输出的能力。要实现这一目标,核心在于有效的提示词设计与后续的输出处理。本文将详细阐述如何通过构建精炼的输入,引导DeepSeek输出符合预期的JSON格式数据,并介绍在实际应用中如何进行格式化结果的生成方法与适配方式,帮助用户掌握 DeepSeek 在处理结…

    2026年9月25日 • 用户投稿
    100
  • 人渣SCUM各种工具怎么使用 工具使用说明​

    人渣SCUM各种工具怎么使用 工具使用说明​人渣SCUM各种工具怎么使用 工具使用说明​人渣SCUM各种工具怎么使用 工具使用说明​人渣SCUM各种工具怎么使用 工具使用说明​

    在《人渣SCUM》中,掌握各类工具的正确使用方式对玩家的生存至关重要,能有效提升资源获取效率与基地建设速度。以下是几款关键工具的具体使用方法,想成为生存高手的玩家务必仔细了解。 1、石斧:主要用于砍伐树木以获得木材,操作时对准树干按下左键进行挥砍;同时也能用来开采石矿,获取制作基础建材和工具所需的原…

    2026年9月25日 • 用户投稿
    100
  • Cooper Toolbox查看投光灯IES

    Cooper Toolbox查看投光灯IESCooper Toolbox查看投光灯IESCooper Toolbox查看投光灯IESCooper Toolbox查看投光灯IES

    可通过cooper photometric toolbox对ies文件进行打开与详细信息查看。操作步骤如下:首先启动软件,随后导入待分析的投光灯ies文件,系统将自动解析并呈现光度数据、配光曲线及各项技术参数,帮助用户全面掌握灯具的照明性能与光线分布特征。 1、 打开并运行Cooper光度计算工具箱…

    2026年9月25日 • 用户投稿
    300
  • 淘宝光合视频行业榜单升级公告的内容有哪些要点?四大升级要点+三维运营红利,7.5起一键管理千牛/光合作品!

    淘宝光合视频行业榜单升级公告的内容有哪些要点?四大升级要点+三维运营红利,7.5起一键管理千牛/光合作品!淘宝光合视频行业榜单升级公告的内容有哪些要点?四大升级要点+三维运营红利,7.5起一键管理千牛/光合作品!淘宝光合视频行业榜单升级公告的内容有哪些要点?四大升级要点+三维运营红利,7.5起一键管理千牛/光合作品!淘宝光合视频行业榜单升级公告的内容有哪些要点?四大升级要点+三维运营红利,7.5起一键管理千牛/光合作品!

    一、升级要点解析 (一)榜单类型 1. 热门作品、热门店铺、热门话题 淘宝光合视频 行业榜单现已划分为三大类别:热门作品、热门店铺与热门话题。 这三类榜单全面覆盖了光合视频生态中的核心维度。通过热门作品榜单,商家可洞察当前高传播度的视频内容,借鉴其创意构思与制作技巧;热门店铺榜单则展示了在短视频营销…

    2026年9月25日 • 用户投稿
    100
  • 怎样通过Nginx日志定位网站问题

    怎样通过Nginx日志定位网站问题怎样通过Nginx日志定位网站问题怎样通过Nginx日志定位网站问题怎样通过Nginx日志定位网站问题

    Nginx日志是网站故障排查的利器,它主要包含访问日志和错误日志两部分。本文将指导您如何利用这两类日志高效定位问题。 一、访问日志 (access log) 访问日志记录了所有对网站的请求信息,包括客户端IP、请求时间、URL、HTTP状态码等关键数据。 常用字段说明: $remote_addr:客…

    2026年9月25日 • 用户投稿
    100
  • ChatGPT是否支持自动补全代码 开发模式下的智能提示与生成能力

    ChatGPT是否支持自动补全代码 开发模式下的智能提示与生成能力ChatGPT是否支持自动补全代码 开发模式下的智能提示与生成能力ChatGPT是否支持自动补全代码 开发模式下的智能提示与生成能力ChatGPT是否支持自动补全代码 开发模式下的智能提示与生成能力

    本文将探讨广泛关注的焦点:ChatGPT作为一款强大的语言模型,在代码开发场景下是否具备类似传统集成开发环境(IDE)的自动补全功能,以及其在开发模式下的智能提示与代码生成能力。我们将通过解析ChatGPT的工作原理,说明其如何辅助开发者,并提供一些利用其智能能力提升开发效率的操作建议。了解这些,将…

    2026年9月25日 • 用户投稿
    000
  • windows8的windows aac aac-audio decoder占用cpu高怎么办_windows8 aac解码器CPU高占用修复方法

    windows8的windows aac aac-audio decoder占用cpu高怎么办_windows8 aac解码器CPU高占用修复方法windows8的windows aac aac-audio decoder占用cpu高怎么办_windows8 aac解码器CPU高占用修复方法windows8的windows aac aac-audio decoder占用cpu高怎么办_windows8 aac解码器CPU高占用修复方法windows8的windows aac aac-audio decoder占用cpu高怎么办_windows8 aac解码器CPU高占用修复方法

    首先禁用音频增强功能以减轻解码负担,接着更新或重装音频驱动提升性能,再更换为VLC等第三方播放器优化解码,最后通过sfc /scannow修复系统文件并重启。 如果您在播放音频文件时发现系统响应迟缓,并且任务管理器显示“Windows AAC Audio Decoder”进程占用了大量CPU资源,则…

    2026年9月25日 • 用户投稿
    000
  • 夸克怎么识别图片里的文字_夸克图片文字提取(OCR)功能操作方法

    夸克怎么识别图片里的文字_夸克图片文字提取(OCR)功能操作方法夸克怎么识别图片里的文字_夸克图片文字提取(OCR)功能操作方法夸克怎么识别图片里的文字_夸克图片文字提取(OCR)功能操作方法夸克怎么识别图片里的文字_夸克图片文字提取(OCR)功能操作方法

    1、使用夸克App扫描功能可快速提取图片文字,支持相册导入或拍摄识别,自动完成OCR并复制文本;2、在网页或聊天中长按图片选择“提取图中文字”即可识别并复制或翻译;3、通过文件管理器用夸克打开本地图片,点击T图标识别文字,支持编辑与导出。 如果您在浏览图片时需要快速获取其中的文字内容,但手动输入效率…

    2026年9月25日 • 用户投稿
    000
  • Debian回收系统稳定性如何

    Debian回收系统稳定性如何Debian回收系统稳定性如何Debian回收系统稳定性如何Debian回收系统稳定性如何

    Debian系统以其稳定性和可靠性著称,广泛应用于生产环境和关键任务系统。本文深入探讨Debian系统的稳定性、安全性及维护优化。 稳定性优势: 严格的质量控制: Debian采用严格的测试和发布流程,确保系统高度稳定可靠。漫长的发布周期,经过充分验证,最大限度地降低了系统故障风险。稳健的更新策略:…

    2026年9月25日 • 用户投稿
    200
  • 不止于“芯”,更在于体验:至像 Z35 国产芯系列打印机引领行业新趋势

    不止于“芯”,更在于体验:至像 Z35 国产芯系列打印机引领行业新趋势不止于“芯”,更在于体验:至像 Z35 国产芯系列打印机引领行业新趋势不止于“芯”,更在于体验:至像 Z35 国产芯系列打印机引领行业新趋势不止于“芯”,更在于体验:至像 Z35 国产芯系列打印机引领行业新趋势

    在“国产替代”趋势席卷各个领域的今天,打印机这一曾长期被海外品牌垄断的细分市场,也迎来了属于“中国智造”的高光时刻。过去,国际厂商凭借技术积累与先发优势,牢牢掌控着国内打印市场的主动权——从核心元器件到整机系统,国内企业往往受制于人,难以真正掌握话语权。 如今,随着本土技术实力的跃升和产业链的日趋成…

    2026年9月25日 • 用户投稿
    600
  • 如何解决Shein广告点击率低的问题?如何加入Shein?Shein广告点击率翻3倍秘诀!2025最新入驻指南,新手必看避坑攻略!

    如何解决Shein广告点击率低的问题?如何加入Shein?Shein广告点击率翻3倍秘诀!2025最新入驻指南,新手必看避坑攻略!如何解决Shein广告点击率低的问题?如何加入Shein?Shein广告点击率翻3倍秘诀!2025最新入驻指南,新手必看避坑攻略!如何解决Shein广告点击率低的问题?如何加入Shein?Shein广告点击率翻3倍秘诀!2025最新入驻指南,新手必看避坑攻略!如何解决Shein广告点击率低的问题?如何加入Shein?Shein广告点击率翻3倍秘诀!2025最新入驻指南,新手必看避坑攻略!

    在shein平台,广告点击率低迷可能导致你预算耗尽却毫无转化!本文将揭晓 5大高效广告优化策略:从场景化视觉呈现(ctr飙升300%)到精准锁定目标人群(聚焦18-34岁女性),再到高转化文案结构(痛点+解决方案+限时福利)。同时,深入解析 2025年入驻shein的3种路径:供应商通道(48小时内…

    2026年9月25日 • 用户投稿
    000

发表回复

登录后才能评论
关注微信