解讀rand.Seed(time.Now().UnixNano())的作用及說明
rand.Seed(time.Now().UnixNano())作用
rand.Int
獲取隨機數(shù),不加隨機種子,每次遍歷獲取都是重復的一些隨機數(shù)據(jù)
rand.Seed(time.Now().UnixNano())
設置隨機數(shù)種子,加上這行代碼,可以保證每次隨機都是隨機的
golang rand seed 隨機數(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保證不一樣:每次使用納秒級別的種子。強烈不推薦這種,因為高并發(fā)的情況下納秒也可能重復。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
go浮點數(shù)轉(zhuǎn)字符串保留小數(shù)點后N位的完美解決方法
這篇文章主要介紹了go浮點數(shù)轉(zhuǎn)字符串保留小數(shù)點后N位解決辦法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
golang?gorm開發(fā)架構(gòu)及寫插件示例
這篇文章主要為大家介紹了golang?gorm開發(fā)架構(gòu)及寫插件的詳細示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04

