类型转换

主要用于在一些无法预测类型的时候使用,如外部提交过来的数据等等。。。

// 获取类型
func GetType(s interface{}) string

// 是否布尔值
func IsBool(v interface{}) bool

// 是否字节
func IsByte(v interface{}) bool

// 是否浮点
func IsFloat32(v interface{}) bool
func IsFloat64(v interface{}) bool

// 是否整型
func IsInt(v interface{}) bool
func IsInt16(v interface{}) bool
func IsInt32(v interface{}) bool
func IsInt64(v interface{}) bool
func IsInt8(v interface{}) bool

// 是否字符串
func IsString(v interface{}) bool
func IsStruct(v interface{}) bool
func IsUint(v interface{}) bool
func IsUint16(v interface{}) bool
func IsUint32(v interface{}) bool
func IsUint64(v interface{}) bool
func IsUint8(v interface{}) bool
func IsInterface(v interface{}) bool

// 转换成布尔值
func ToBool(i interface{}) bool

// 转换成字节
func ToByte(i interface{}) []byte

// 转换成浮点
func ToFloat32(i interface{}) float32
func ToFloat64(i interface{}) float64

// 转换成整型
func ToInt(i interface{}) int
func ToInt16(i interface{}) int16
func ToInt32(i interface{}) int32
func ToInt64(i interface{}) int64
func ToInt8(i interface{}) int8
func ToUint(i interface{}) uint
func ToUint16(i interface{}) uint16
func ToUint32(i interface{}) uint32
func ToUint64(i interface{}) uint64
func ToUint8(i interface{}) uint8

// 转换成字符串
func ToString(i interface{}) string

// 转换成 map
func ToMap(value interface{}) Map 
// 转换成 maps
func ToMaps(value interface{}) Maps 

// 任意进制转换
func DecimalToAny(value, base int) (newNumStr string)
func AnyToDecimal(value string, base int) (v int)

示例

package main

import(
  "github.com/sohaha/zlsgo/ztype"
  "github.com/sohaha/zlsgo/zlog"
)

func main()  {
  name := 10086
  zlog.Println("This is string: ",ztype.ToString(name))
}

其他

// 动态生成结构体
s := ztype.NewStruct()
s.AddField("Name", "")

// 移除
s.RemoveField("Name")
// 获取值
s.Interface()

// 合并结构体
s.Merge(xxx{})

// 动态生成 Map
key := "" // Map 的 key 类型
s := ztype.NewMapStruct(key)