mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-07 09:11:15 +08:00
43 lines
805 B
Go
43 lines
805 B
Go
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]
|
|
}
|