From f7aaa1ed2a642010072cf4629bfb2fc2e8861af9 Mon Sep 17 00:00:00 2001 From: dudaodong Date: Thu, 23 Feb 2023 11:43:41 +0800 Subject: [PATCH] fix: fix issue #75 --- random/random.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/random/random.go b/random/random.go index 6e9d808..b6fc1aa 100644 --- a/random/random.go +++ b/random/random.go @@ -19,6 +19,10 @@ const ( Letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) +func init() { + rand.Seed(time.Now().UnixNano()) +} + // RandInt generate random int between min and max, maybe min, not be max. // Play: https://go.dev/play/p/pXyyAAI5YxD func RandInt(min, max int) int { @@ -28,9 +32,12 @@ func RandInt(min, max int) int { if max < min { min, max = max, min } - r := rand.New(rand.NewSource(time.Now().UnixNano())) - return r.Intn(max-min) + min + // fix: https://github.com/duke-git/lancet/issues/75 + // r := rand.New(rand.NewSource(time.Now().UnixNano())) + // return r.Intn(max-min) + min + + return rand.Intn(max-min) + min } // RandBytes generate random byte slice. @@ -81,10 +88,12 @@ func RandNumeralOrLetter(length int) string { // random generate a random string based on given string range. func random(s string, length int) string { b := make([]byte, length) - r := rand.New(rand.NewSource(time.Now().UnixNano())) + + // fix: https://github.com/duke-git/lancet/issues/75 + // r := rand.New(rand.NewSource(time.Now().UnixNano())) for i := range b { - b[i] = s[r.Int63()%int64(len(s))] + b[i] = s[rand.Int63()%int64(len(s))] } return string(b)