解讀rand.Seed(time.Now().UnixNano())的作用及說明
rand.Seed(time.Now().UnixNano())作用
rand.Int
獲取隨機(jī)數(shù),不加隨機(jī)種子,每次遍歷獲取都是重復(fù)的一些隨機(jī)數(shù)據(jù)
rand.Seed(time.Now().UnixNano())
設(shè)置隨機(jī)數(shù)種子,加上這行代碼,可以保證每次隨機(jī)都是隨機(jī)的
golang rand seed 隨機(jī)數(shù)
rand.Seed(time.Now().UnixNano()) randInsert := rand.Intn(4) // [0, 4)
如果每次調(diào)rand.Intn()前都調(diào)了rand.Seed(x),每次的x相同的話,每次的rand.Intn()也是一樣的。
兩種解決方案
1. 只調(diào)一次rand.Seed():在全局初始化調(diào)用一次seed,每次調(diào)rand.Intn()前都不再調(diào)rand.Seed()。
2. 調(diào)多次rand.Seed(x),但每次x保證不一樣:每次使用納秒級別的種子。強(qiáng)烈不推薦這種,因?yàn)楦卟l(fā)的情況下納秒也可能重復(fù)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
go浮點(diǎn)數(shù)轉(zhuǎn)字符串保留小數(shù)點(diǎn)后N位的完美解決方法
這篇文章主要介紹了go浮點(diǎn)數(shù)轉(zhuǎn)字符串保留小數(shù)點(diǎn)后N位解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
利用golang實(shí)現(xiàn)pdf中自動(dòng)換行的表格
這篇文章主要給大家介紹了如何利用golang實(shí)現(xiàn)pdf中自動(dòng)換行的表格,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02
golang?gorm開發(fā)架構(gòu)及寫插件示例
這篇文章主要為大家介紹了golang?gorm開發(fā)架構(gòu)及寫插件的詳細(xì)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04

