mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-26 17:40:25 +08:00
v1.0.0
v1.0.0
This commit is contained in:
42
utils/rand.go
Normal file
42
utils/rand.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
||||
// RandString - 生成随机字符串
|
||||
func RandString(length int, chars ...string) (result string) {
|
||||
|
||||
var charset string
|
||||
|
||||
if IsEmpty(chars) {
|
||||
charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
} else {
|
||||
charset = chars[0]
|
||||
}
|
||||
var seededRand = rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
|
||||
item := make([]byte, length)
|
||||
for i := range item {
|
||||
item[i] = charset[seededRand.Intn(len(charset))]
|
||||
}
|
||||
|
||||
return string(item)
|
||||
}
|
||||
|
||||
// RandInt - 生成随机整数
|
||||
func RandInt(max int, min ...int) (result int) {
|
||||
if IsEmpty(min) {
|
||||
min = []int{0}
|
||||
}
|
||||
if max <= min[0] {
|
||||
// 交换两个数
|
||||
max, min[0] = min[0], max
|
||||
}
|
||||
if max == min[0] {
|
||||
return max
|
||||
}
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
return rand.Intn(max-min[0]) + min[0]
|
||||
}
|
||||
Reference in New Issue
Block a user