最简单的方法是拨打
原文链接:https://www.f2er.com/windows/364267.htmlrand.Uint32()
两次:
func Uint64() uint64 { return uint64(rand.Uint32())<<32 + uint64(rand.Uint32()) }
另一种选择是调用rand.Read()
(was added in Go 1.7)读取8个字节,然后使用encoding/binary
包从中获取uint64值:
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,因为我们使用其所有字节生成随机数,字节顺序完全无关紧要.