你如何在Go中生成随机uint64?
发布时间:2020-12-14 04:19:42 所属栏目:Windows 来源:网络整理
导读:Go的数学/随机库缺少一个生成64位数字的函数.这已经是 an open issue大约四年了.与此同时,变通方法是什么样的? 最简单的方法是拨打 rand.Uint32() 两次: func Uint64() uint64 { return uint64(rand.Uint32())32 + uint64(rand.Uint32())} 另一种选择是调
Go的数学/随机库缺少一个生成64位数字的函数.这已经是
an open issue大约四年了.与此同时,变通方法是什么样的?
最简单的方法是拨打
rand.Uint32() 两次:
func Uint64() uint64 { return uint64(rand.Uint32())<<32 + uint64(rand.Uint32()) } 另一种选择是调用 func Uint64() uint64 { buf := make([]byte,8) rand.Read(buf) // Always succeeds,no need to check error return binary.LittleEndian.Uint64(buf) } 注意:作为rand.Read()的文档状态,它总是读取与传递的片的长度一样多的字节,并且它总是返回nil错误,因此在这种情况下不需要检查错误. 注意#2:您也可以使用binary.BigEndian而不是binary.LittleEndian,因为我们使用其所有字节生成随机数,字节顺序完全无关紧要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- windows – 批处理文件,每1分钟执行一次命令
- windows – 是否有可能导致人为的网络数据包丢失
- 如何在远程Powershell会话中保留凭据?
- windows – 了解MsgWaitForMultipleObjects
- windows – 域中的客户端通知
- windows – 如何使用批处理文件重命名文件以包含
- windows – event.getFile().getFileName()返回带
- windows-runtime – Windows Phone 8.1上的Missi
- windows – 测试Enter-PSSession是否成功
- windows-server-2012 – 如何确定SMB客户端是否已
热点阅读