diff --git a/util/map.go b/util/map.go new file mode 100644 index 0000000..88cd1fc --- /dev/null +++ b/util/map.go @@ -0,0 +1,209 @@ +// Package util ... +// +// Description : 从map中读取数据 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2021-11-16 4:28 下午 +package util + +import ( + "git.zhangdeman.cn/zhangdeman/gopkg/convert" + "github.com/pkg/errors" +) + +// Exist 检测一个key在map中是否存在 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 4:52 下午 2021/11/16 +func Exist(source map[interface{}]interface{}, key interface{}) bool { + if nil == source { + return false + } + if _, exist := source[key]; !exist { + return false + } + return true +} + +// GetInt 获取int值 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 4:30 下午 2021/11/16 +func GetInt(source map[interface{}]interface{}, key interface{}, defaultVal int) int { + var result int + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetInt8 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 4:59 下午 2021/11/16 +func GetInt8(source map[interface{}]interface{}, key interface{}, defaultVal int8) int8 { + var result int8 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetInt16 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 4:59 下午 2021/11/16 +func GetInt16(source map[interface{}]interface{}, key interface{}, defaultVal int16) int16 { + var result int16 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetInt32 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:00 下午 2021/11/16 +func GetInt32(source map[interface{}]interface{}, key interface{}, defaultVal int32) int32 { + var result int32 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetInt64 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:00 下午 2021/11/16 +func GetInt64(source map[interface{}]interface{}, key interface{}, defaultVal int64) int64 { + var result int64 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetUint ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:01 下午 2021/11/16 +func GetUint(source map[interface{}]interface{}, key interface{}, defaultVal uint) uint { + var result uint + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetUint8 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:01 下午 2021/11/16 +func GetUint8(source map[interface{}]interface{}, key interface{}, defaultVal uint8) uint8 { + var result uint8 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetUint16 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:02 下午 2021/11/16 +func GetUint16(source map[interface{}]interface{}, key interface{}, defaultVal uint16) uint16 { + var result uint16 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetUint32 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:02 下午 2021/11/16 +func GetUint32(source map[interface{}]interface{}, key interface{}, defaultVal uint32) uint32 { + var result uint32 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetUint64 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:03 下午 2021/11/16 +func GetUint64(source map[interface{}]interface{}, key interface{}, defaultVal uint64) uint64 { + var result uint64 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetFloat32 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:03 下午 2021/11/16 +func GetFloat32(source map[interface{}]interface{}, key interface{}, defaultVal float32) float32 { + var result float32 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetFloat64 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:04 下午 2021/11/16 +func GetFloat64(source map[interface{}]interface{}, key interface{}, defaultVal float64) float64 { + var result float64 + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetString ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 5:07 下午 2021/11/16 +func GetString(source map[interface{}]interface{}, key interface{}, defaultVal string) string { + var result string + if err := GetDataWithReceiver(source, key, &result); nil != err { + return defaultVal + } + return result +} + +// GetDataWithReceiver 使用制定的数据指针接受结果 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 4:54 下午 2021/11/16 +func GetDataWithReceiver(source map[interface{}]interface{}, key interface{}, receiver interface{}) error { + if !Exist(source, key) { + return errors.New("key is not found") + } + return convert.ConvertAssign(receiver, source[key]) +}