cvt是一个简单、安全、高效的转换任意数据类型的Go语言工具包,支持自定义类型、提取结构体字段和值。
安装goget-ugithub.com/shockerli/cvt使用支持 error以 E 结尾的方法 __E():当转换失败时会返回错误
cvt.IntE("12")//12,nilcvt.Float64E("12.34")//12.34,nilcvt.StringE(12.34)//"12.34",nilcvt.BoolE("false")//false,nil自定义类型、指针类型自动解引用,并找到基本类型,完全支持自定义类型的转换
typeNamestringvarnameName="jioby"cvt.StringE(name)//jioby,nilcvt.StringE(&name)//jioby,nil忽略 error名称不以 E 结尾的方法,如果转换失败,不会返回错误,会返回零值
cvt.Int("12")//12(success)cvt.Int(struct{}{})//0(failed)默认值如果转换失败,返回默认值
cvt.Int(struct{}{},12)//12cvt.Float("hello",12.34)//12.34更多示例上千个单元测试用例,覆盖率近100%,所有示例可通过单元测试了解:*_test.go
APIboolBoolBoolEintIntIntEInt8Int8EInt16Int16EInt32Int32EInt64Int64EUintUintEUint8Uint8EUint16Uint16EUint32Uint32EUint64Uint64EstringStringStringEfloatFloat32Float32EFloat64Float64EtimeTimeTimeEsliceColumnsE:类似于PHP中的 array_column,FieldE 函数的切片版本,返回 []interface{}FieldE:取 map 或 struct 的字段值,返回 interface{}KeysE:取 map 的键名,返回 []interface{}Slice / SliceE:转换成 []interface{}SliceIntE:转换成 []intSliceInt64E:转换成 []int64SliceFloat64E:转换成 []float64SliceStringE:转换成 []string
评论