类型转换
主要用于在一些无法预测类型的时候使用,如外部提交过来的数据等等。。。
// 获取类型 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)