fix(rands): 随机字符串长度不能小于0

This commit is contained in:
pyihe
2021-07-01 16:48:10 +08:00
parent 015f25507c
commit a479360ed8
2 changed files with 14 additions and 22 deletions

View File

@@ -56,8 +56,11 @@ func Int32(min, max int32) int32 {
return rad.Int31n(max-min+1) + min return rad.Int31n(max-min+1) + min
} }
//随机指定长度的字符串 //String 随机指定长度的字符串
func String(n int) string { func String(n int) string {
if n <= 0 {
panic("invalid argument to String")
}
var b = make([]byte, n) var b = make([]byte, n)
for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; { for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; {
if remain == 0 { if remain == 0 {

View File

@@ -11,8 +11,6 @@ import (
"regexp" "regexp"
"strconv" "strconv"
"syscall" "syscall"
"github.com/pyihe/go-pkg/rands"
) )
var ( var (
@@ -30,14 +28,6 @@ func CheckPhoneFormat(phone string) bool {
return phoneChecker.MatchString(phone) return phoneChecker.MatchString(phone)
} }
//生成一个1-100的随机数, 用于简单的判断概率
func LessThanIn100(per int) bool {
if per < 1 || per > 100 {
panic("input must between 1 and 100")
}
return per >= rands.Int(1, 100)
}
//如果监听到系统中断信号则执行onNotify() //如果监听到系统中断信号则执行onNotify()
func Notify(onNotify func()) { func Notify(onNotify func()) {
//SIGHUP 终端控制进程结束(终端连接断开) //SIGHUP 终端控制进程结束(终端连接断开)
@@ -61,7 +51,7 @@ func Notify(onNotify func()) {
} }
} }
//判断src中是否有元素ele // Contain 判断src中是否有元素ele
func Contain(src interface{}, ele interface{}) bool { func Contain(src interface{}, ele interface{}) bool {
switch reflect.TypeOf(src).Kind() { switch reflect.TypeOf(src).Kind() {
case reflect.Slice: case reflect.Slice:
@@ -75,11 +65,11 @@ func Contain(src interface{}, ele interface{}) bool {
return false return false
} }
//将嵌套的map[string]interface全部转换成一层 // Interface2Map 将嵌套的map[string]interface全部转换成一层
func Interface2Map(data interface{}) map[string]interface{} { func Interface2Map(data map[string]interface{}) map[string]interface{} {
result := make(map[string]interface{}) result := make(map[string]interface{})
for k, v := range data.(map[string]interface{}) { for k, iface := range data {
switch v := v.(type) { switch v := iface.(type) {
case map[string]interface{}: case map[string]interface{}:
for i, u := range v { for i, u := range v {
result[i] = u result[i] = u
@@ -91,7 +81,7 @@ func Interface2Map(data interface{}) map[string]interface{} {
return result return result
} }
//gzip解压 // UnGZIP gzip解压
func UnGZIP(content []byte) ([]byte, error) { func UnGZIP(content []byte) ([]byte, error) {
buffer := new(bytes.Buffer) buffer := new(bytes.Buffer)
err := binary.Write(buffer, binary.BigEndian, content) err := binary.Write(buffer, binary.BigEndian, content)
@@ -110,12 +100,11 @@ func UnGZIP(content []byte) ([]byte, error) {
return result, nil return result, nil
} }
// ConvertToBinary 十进制转换为二进制字符串 // DecimalToBinary 十进制转换为二进制字符串
func ConvertToBinary(data int) string { func DecimalToBinary(data int) (decimal string) {
result := ""
for ; data > 0; data = data / 2 { for ; data > 0; data = data / 2 {
n := data % 2 n := data % 2
result = strconv.Itoa(n) + result decimal = strconv.Itoa(n) + decimal
} }
return result return
} }