mirror of
https://github.com/pyihe/go-pkg.git
synced 2025-10-12 03:10:07 +08:00
fix(rands): 随机字符串长度不能小于0
This commit is contained in:
@@ -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 {
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user