| | package common |
| |
|
| | import ( |
| | "encoding/json" |
| | "math/rand" |
| | "strconv" |
| | "unsafe" |
| | ) |
| |
|
| | func GetStringIfEmpty(str string, defaultValue string) string { |
| | if str == "" { |
| | return defaultValue |
| | } |
| | return str |
| | } |
| |
|
| | func GetRandomString(length int) string { |
| | |
| | key := make([]byte, length) |
| | for i := 0; i < length; i++ { |
| | key[i] = keyChars[rand.Intn(len(keyChars))] |
| | } |
| | return string(key) |
| | } |
| |
|
| | func MapToJsonStr(m map[string]interface{}) string { |
| | bytes, err := json.Marshal(m) |
| | if err != nil { |
| | return "" |
| | } |
| | return string(bytes) |
| | } |
| |
|
| | func StrToMap(str string) map[string]interface{} { |
| | m := make(map[string]interface{}) |
| | err := json.Unmarshal([]byte(str), &m) |
| | if err != nil { |
| | return nil |
| | } |
| | return m |
| | } |
| |
|
| | func IsJsonStr(str string) bool { |
| | var js map[string]interface{} |
| | return json.Unmarshal([]byte(str), &js) == nil |
| | } |
| |
|
| | func String2Int(str string) int { |
| | num, err := strconv.Atoi(str) |
| | if err != nil { |
| | return 0 |
| | } |
| | return num |
| | } |
| |
|
| | func StringsContains(strs []string, str string) bool { |
| | for _, s := range strs { |
| | if s == str { |
| | return true |
| | } |
| | } |
| | return false |
| | } |
| |
|
| | |
| | func StringToByteSlice(s string) []byte { |
| | tmp1 := (*[2]uintptr)(unsafe.Pointer(&s)) |
| | tmp2 := [3]uintptr{tmp1[0], tmp1[1], tmp1[1]} |
| | return *(*[]byte)(unsafe.Pointer(&tmp2)) |
| | } |
| |
|