| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| 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)) |
| } |
|
|
| |
| func IsEmptyOrWhitespace(s string) bool { |
| if s == "" { |
| return true |
| } |
|
|
| for _, char := range s { |
| if char != ' ' && char != '\t' && char != '\n' && char != '\r' { |
| return false |
| } |
| } |
| return true |
| } |
|
|