✨ 初始化项目
This commit is contained in:
63
internal/random/random.go
Normal file
63
internal/random/random.go
Normal file
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* @Author: Echo
|
||||
* @Author:1711788888@qq.com
|
||||
* @Date: 2021/5/12 10:35
|
||||
* @Desc: 随机数类库
|
||||
*/
|
||||
|
||||
package random
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
AlphaStr = iota // 字母字
|
||||
AlphaLowerStr // 小写字母
|
||||
AlphaUpperStr // 大写字母
|
||||
NumericStr // 数字
|
||||
NoZeroNumericStr // 无0数字
|
||||
)
|
||||
|
||||
// GenStr 生成指定长度的字符串
|
||||
func GenStr(mode, length int) string {
|
||||
var (
|
||||
pos int
|
||||
lastStr string
|
||||
seedStr string
|
||||
)
|
||||
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
switch mode {
|
||||
case AlphaStr:
|
||||
seedStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
case AlphaLowerStr:
|
||||
seedStr = "abcdefghijklmnopqrstuvwxyz"
|
||||
case AlphaUpperStr:
|
||||
seedStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
case NumericStr:
|
||||
seedStr = "0123456789"
|
||||
case NoZeroNumericStr:
|
||||
seedStr = "123456789"
|
||||
}
|
||||
|
||||
seedLen := len(seedStr)
|
||||
for i := 0; i < length; i++ {
|
||||
pos = rand.Intn(seedLen)
|
||||
lastStr += seedStr[pos : pos+1]
|
||||
}
|
||||
|
||||
return lastStr
|
||||
}
|
||||
|
||||
// GenNumeric 生成指定范围的数字
|
||||
func GenNumeric(min int, max int) int {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
|
||||
if min < max {
|
||||
return rand.Intn(max-min) + min
|
||||
} else {
|
||||
return rand.Intn(min-max) + max
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user