From aae6d7220fcc1bb7e58ef310e4716948d84cb433 Mon Sep 17 00:00:00 2001 From: dtapps Date: Tue, 19 Mar 2024 13:41:02 +0800 Subject: [PATCH] - update --- .gitignore | 4 ++-- README.md | 4 ++-- go.mod | 2 +- gorandom.go | 12 ++++++++---- version.go | 2 +- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 4794692..c2fc790 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,6 @@ .idea .vscode *.log -goinit.sh -gomod.sh +*_test.go +go_mod.sh /vendor/ \ No newline at end of file diff --git a/README.md b/README.md index cdb34f5..caa0924 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

-Golang Random +Golang

📦 Golang Random @@ -13,5 +13,5 @@ #### 安装 ```go -go get -v -u go.dtapp.net/gorandom +go get -v -u go.dtapp.net/gorandom@v1.0.3 ``` diff --git a/go.mod b/go.mod index 2a5e8ef..3efd94b 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ module go.dtapp.net/gorandom -go 1.18 +go 1.22 diff --git a/gorandom.go b/gorandom.go index d20176f..1ed0fce 100644 --- a/gorandom.go +++ b/gorandom.go @@ -1,7 +1,7 @@ package gorandom import ( - "math/rand" + "math/rand/v2" "time" ) @@ -15,7 +15,11 @@ func random[T int | int64](n T, chars string) string { if n <= 0 { return "" } - r := rand.New(rand.NewSource(time.Now().UnixNano())) + + // 随机数生成器,加入时间戳保证每次生成的随机数不一样 + seed := time.Now().UnixNano() // rand内部运算的随机数 + r := rand.New(rand.NewPCG(uint64(seed), uint64(seed))) // rand计算得到的随机数 + bytes := make([]byte, n, n) l := len(chars) var i T = 0 @@ -23,7 +27,7 @@ func random[T int | int64](n T, chars string) string { if i >= n { break } - bytes[i] = chars[r.Intn(l)] + bytes[i] = chars[r.IntN(l)] i++ } return string(bytes) @@ -54,7 +58,7 @@ func Range(min int64, max int64) int64 { var number int64 for { // 生成在范围 [min, max) 内的随机数 - number = int64(rand.Intn(int(max)-int(min)) + int(min)) + number = int64(rand.IntN(int(max)-int(min)) + int(min)) // 检查随机数是否大于 min 且小于 max if number > min && number < max { diff --git a/version.go b/version.go index c8bf7c3..cadcf9f 100644 --- a/version.go +++ b/version.go @@ -1,3 +1,3 @@ package gorandom -const Version = "1.0.2" +const Version = "1.0.3"