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)) }
依次類推,需要其他指定位數(shù)的隨機(jī)數(shù)時(shí)均可通過(guò)修改上述參數(shù)產(chǎn)生。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
go語(yǔ)言interface接口繼承多態(tài)示例及定義解析
這篇文章主要為大家介紹了go語(yǔ)言interface接口繼承多態(tài)示例及定義解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04詳解Golang如何使用Debug庫(kù)優(yōu)化代碼
這篇文章將針對(duì)Golang的debug庫(kù)進(jìn)行全面解讀,涵蓋其核心組件、高級(jí)功能和實(shí)戰(zhàn)技巧,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下2024-02-02go?tool?pprof?參數(shù)?'-base'?和?'-diff_base&
這篇文章主要介紹了go?tool?pprof?參數(shù)?'-base'?和?'-diff_base'之間的區(qū)別,兩個(gè)參數(shù)都是用于計(jì)算當(dāng)前?profile文件減去基準(zhǔn)profile文件所獲得的差值,用這個(gè)差值生成一個(gè)新的profile文件,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Golang AGScheduler動(dòng)態(tài)持久化任務(wù)調(diào)度的強(qiáng)大庫(kù)使用實(shí)例
這篇文章主要為大家介紹了Golang AGScheduler動(dòng)態(tài)持久化任務(wù)調(diào)度的強(qiáng)大庫(kù)使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10