266 lines
5.3 KiB
Plaintext
266 lines
5.3 KiB
Plaintext
|
|
package typeUtil
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"fmt"
|
|||
|
|
"time"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// KeyValue数据集合
|
|||
|
|
type MapData map[string]interface{}
|
|||
|
|
|
|||
|
|
// 创建新的MapData
|
|||
|
|
// mapData:原有的map数据
|
|||
|
|
// 返回
|
|||
|
|
// 新的Map对象
|
|||
|
|
func NewMapData(mapData map[string]interface{}) MapData {
|
|||
|
|
return MapData(mapData)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为byte
|
|||
|
|
// 返回值:
|
|||
|
|
// byte:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Byte(key string) (value byte, err error) {
|
|||
|
|
return this.Uint8(key)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为int
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Int(key string) (value int, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Int(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为int8
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Int8(key string) (value int8, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Int8(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为int16
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Int16(key string) (value int16, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Int16(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为int32
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Int32(key string) (value int32, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Int32(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为int64
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Int64(key string) (value int64, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Int64(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为uint
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Uint(key string) (value uint, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Uint(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为uint8
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Uint8(key string) (value uint8, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Uint8(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为uint16
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Uint16(key string) (value uint16, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Uint16(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为uint32
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Uint32(key string) (value uint32, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Uint32(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为uint64
|
|||
|
|
// 返回值:
|
|||
|
|
// int:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Uint64(key string) (value uint64, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Uint64(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为float32
|
|||
|
|
// 返回值:
|
|||
|
|
// float64:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Float32(key string) (value float32, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Float32(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为float64
|
|||
|
|
// 返回值:
|
|||
|
|
// float64:结果
|
|||
|
|
// error:错误数据
|
|||
|
|
func (this MapData) Float64(key string) (value float64, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Float64(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为bool
|
|||
|
|
// 返回值:
|
|||
|
|
// bool:结果
|
|||
|
|
// error:错误信息
|
|||
|
|
func (this MapData) Bool(key string) (value bool, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = Bool(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 类型转换为字符串
|
|||
|
|
// 返回值:
|
|||
|
|
// string:结果
|
|||
|
|
// error:错误信息
|
|||
|
|
func (this MapData) String(key string) (value string, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = String(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 转换为时间格式,如果是字符串,则要求内容格式形如:2017-02-14 05:20:00
|
|||
|
|
// 返回值:
|
|||
|
|
// bool:结果
|
|||
|
|
// error:错误信息
|
|||
|
|
func (this MapData) DateTime(key string) (value time.Time, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value, err = DateTime(val)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 获取指定的值
|
|||
|
|
// 返回值:
|
|||
|
|
// interface{}:结果
|
|||
|
|
// error:错误信息
|
|||
|
|
func (this MapData) Interface(key string) (value interface{}, err error) {
|
|||
|
|
val, exist := this[key]
|
|||
|
|
if exist == false || val == nil {
|
|||
|
|
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
value = val
|
|||
|
|
return
|
|||
|
|
}
|