master v1.0.3
dtapps 1 month ago
parent e413b27998
commit aae6d7220f

4
.gitignore vendored

@ -4,6 +4,6 @@
.idea
.vscode
*.log
goinit.sh
gomod.sh
*_test.go
go_mod.sh
/vendor/

@ -1,5 +1,5 @@
<h1>
<a href="https://www.dtapp.net/">Golang Random</a>
<a href="https://www.dtapp.net/">Golang</a>
</h1>
📦 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
```

@ -1,3 +1,3 @@
module go.dtapp.net/gorandom
go 1.18
go 1.22

@ -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 {

@ -1,3 +1,3 @@
package gorandom
const Version = "1.0.2"
const Version = "1.0.3"

Loading…
Cancel
Save