快速上手
简单、安全、高效的转换任意数据类型的 Go 语言工具包,支持自定义类型、提取结构体字段和值。
文档说明__()
、__P()
均是以其对应的__E()
为基础的便捷方法,故其使用方法及支持的类型请参考__E()
的文档,大部分此类便利方法均不再详细阐述。
- Go >= 1.13
go get -u github.com/shockerli/cvt
import "github.com/shockerli/cvt"
以
E
结尾的方法__E()
: 当转换失败时会返回错误
cvt.IntE("12") // 12, nil
cvt.Float64E("12.34") // 12.34, nil
cvt.StringE(12.34) // "12.34", nil
cvt.BoolE("false") // false, nil
自动解引用,并找到基本类型,完全支持自定义类型的转换
type Name string
var name Name = "jioby"
cvt.StringE(name) // jioby, nil
cvt.StringE(&name) // jioby, nil
名称不以
E
结尾的方法,如果转换失败,不会返回错误,会返回零值
cvt.Int("12") // 12(success)
cvt.Int(struct{}{}) // 0(failed)
如果转换失败,返回默认值
cvt.Int(struct{}{}, 12) // 12
cvt.Float("hello", 12.34) // 12.34
以
P
结尾的方法__P
,返回转换后数据的指针地址
cvt.BoolP("true") // (*bool)(0x14000126180)(true)
上千个单元测试用例,覆盖率近100%,所有示例可通过单元测试了解:
*_test.go