golang生成指定位數(shù)的隨機(jī)數(shù)的方法
1.隨機(jī)數(shù)
隨機(jī)數(shù),是使用一個(gè)確定性的算法計(jì)算出來(lái)隨機(jī)數(shù)序。在程序開(kāi)發(fā)中經(jīng)常需要產(chǎn)生隨機(jī)數(shù),如隨機(jī)數(shù)驗(yàn)證碼登陸、作為唯一身份標(biāo)識(shí)數(shù)據(jù)等等。
2.rand庫(kù)
golang中產(chǎn)生隨機(jī)數(shù)主要有兩個(gè)包,分別是“math/rand”和“crypto/rand”。
“math/rand”的rand包實(shí)現(xiàn)了偽隨機(jī)數(shù)生成器。
"crypto/rand"的rand包實(shí)現(xiàn)了用于加解密的更安全的隨機(jī)數(shù)生成器。
3.生成指定位數(shù)隨機(jī)數(shù)
以生成六位隨機(jī)數(shù)為例
package main
import (
"fmt"
"math/rand"
)
func CreateCaptcha() string {
return fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000))
}
func main(){
fmt.Println(CreateCaptcha() )
}
輸出結(jié)果:

同理生成八位隨機(jī)數(shù)只需修改產(chǎn)生隨機(jī)數(shù)參數(shù)即可
func CreateCaptcha() string {
return fmt.Sprintf("%08v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(100000000))
}
依次類(lèi)推,需要其他指定位數(shù)的隨機(jī)數(shù)時(shí)均可通過(guò)修改上述參數(shù)產(chǎn)生。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Go語(yǔ)言bufio庫(kù)的全面指南與實(shí)戰(zhàn)技巧詳解
這篇文章主要為大家全面介紹一下?bufio?庫(kù)的核心組件與功能,包括?Reader、Writer?和?Scanner?等并深入探討它們?cè)趯?shí)際編程中的運(yùn)用場(chǎng)景和技巧,感興趣的可以了解下2024-01-01
Golang 空map和未初始化map的注意事項(xiàng)說(shuō)明
這篇文章主要介紹了Golang 空map和未初始化map的注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
Go連接數(shù)據(jù)庫(kù)操作基礎(chǔ)講解
這篇文章主要為大家介紹了Go連接數(shù)據(jù)庫(kù)操作基礎(chǔ)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
關(guān)于golang?struct?中的?slice?無(wú)法原子賦值的問(wèn)題
這篇文章主要介紹了為什么?golang?struct?中的?slice?無(wú)法原子賦值的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01
Golang實(shí)現(xiàn)自己的Redis數(shù)據(jù)庫(kù)內(nèi)存實(shí)例探究
這篇文章主要為大家介紹了Golang實(shí)現(xiàn)自己的Redis數(shù)據(jù)庫(kù)內(nèi)存實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Go語(yǔ)言七篇入門(mén)教程七GC垃圾回收三色標(biāo)記
這篇文章主要為大家介紹了Go語(yǔ)言教程關(guān)于GC垃圾回收三色標(biāo)記的示例詳解,本篇文章是Go語(yǔ)言七篇入門(mén)教程系列文章,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11

