You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.4 KiB
70 lines
1.4 KiB
package utils
|
|
|
|
import (
|
|
"hash/fnv"
|
|
"strconv"
|
|
)
|
|
|
|
func Atoi(b []byte) (int, error) {
|
|
return strconv.Atoi(BytesToString(b))
|
|
}
|
|
func StringToInt64(b string) int64 {
|
|
if i, err := strconv.ParseInt(b, 10, 64); err != nil {
|
|
return 0
|
|
} else {
|
|
return i
|
|
}
|
|
}
|
|
|
|
func StringToUInt64(b string) uint64 {
|
|
if i, err := strconv.ParseUint(b, 10, 64); err != nil {
|
|
return 0
|
|
} else {
|
|
return i
|
|
}
|
|
}
|
|
|
|
func StringToFloat64(b string) float64 {
|
|
if i, err := strconv.ParseFloat(b, 64); err != nil {
|
|
return 0
|
|
} else {
|
|
return i
|
|
}
|
|
}
|
|
func ParseInt(b []byte, base int, bitSize int) (int64, error) {
|
|
return strconv.ParseInt(BytesToString(b), base, bitSize)
|
|
}
|
|
|
|
func ParseUint(b []byte, base int, bitSize int) (uint64, error) {
|
|
return strconv.ParseUint(BytesToString(b), base, bitSize)
|
|
}
|
|
|
|
func ParseFloat(b []byte, bitSize int) (float64, error) {
|
|
return strconv.ParseFloat(BytesToString(b), bitSize)
|
|
}
|
|
|
|
func ParseBool(b []byte) (bool, error) {
|
|
return strconv.ParseBool(BytesToString(b))
|
|
}
|
|
|
|
func UintToString(n uint64) string {
|
|
return BytesToString(strconv.AppendUint([]byte{}, n, 10))
|
|
}
|
|
|
|
func IntToString(n int64) string {
|
|
return BytesToString(strconv.AppendInt([]byte{}, n, 10))
|
|
}
|
|
|
|
func FloatToString(f float64) string {
|
|
return BytesToString(strconv.AppendFloat([]byte{}, f, 'f', -1, 64))
|
|
}
|
|
|
|
// 字符串Hash到int
|
|
func StringHashToInt(s string) uint64 {
|
|
// 创建一个新的 FNV-1a 哈希
|
|
h := fnv.New64a()
|
|
// 写入字符串
|
|
h.Write([]byte(s))
|
|
// 返回哈希值
|
|
return h.Sum64()
|
|
}
|
|
|