package common import ( "crypto/md5" "encoding/hex" "github.com/syyongx/php2go" "strconv" ) // Md5 md5() func Md5(str string) string { hash := md5.New() hash.Write([]byte(str)) return hex.EncodeToString(hash.Sum(nil)) } //非精确匹配,字符串截取向下80%,5个字符以下不截,5-10个截一个,10-20个向下取80%,20个以上向下取70% func SubKeyWordStr(str string) string { strLen := len(str) strLenFloat := float64(strLen) if strLen < 5 { return str } if strLen >= 5 && strLen <= 10 { str = php2go.Substr(str, 0, strLen-1) } if strLen > 10 && strLen <= 20 { num := php2go.Floor(strLenFloat * 0.2) str = php2go.Substr(str, 0, strLen-int(num)) } if strLen > 20 { num := php2go.Floor(strLenFloat * 0.3) str = php2go.Substr(str, 0, strLen-int(num)) } return str } //转成字符串的方法 func ToString(a interface{}) string { if v, p := a.(int); p { return strconv.Itoa(v) } if v, p := a.(int16); p { return strconv.Itoa(int(v)) } if v, p := a.(int32); p { return strconv.Itoa(int(v)) } if v, p := a.(uint); p { return strconv.Itoa(int(v)) } if v, p := a.(float32); p { return strconv.FormatFloat(float64(v), 'f', -1, 32) } if v, p := a.(float64); p { return strconv.FormatFloat(v, 'f', -1, 32) } return "change to String error" }