相信小伙伴们在用golang做类型转换时候的经常需要判断一下转换是否成功,如下:
// 整形数字转换
strNum := "150"
num, err := strconv.ParseInt("150", 10, 32)
if err != nil{
// panic(err)
}
layout := "2006-01-02 "
timeTime, err := time.Parse(layout, "2021-03-21")
if err != nil{
// do err logic
}
这种代码写起来非常浪费生命,写显得代码非常冗余。这里给大家推荐一个非常香的基本数据类型转换库——cast
安装方式
go get -v github.com/spf13/cast
// 重点说三次: 所有的转换都是安全的,不会panic!!!
// 重点说三次: 所有的转换都是安全的,不会panic!!!
// 重点说三次: 所有的转换都是安全的,不会panic!!!
//转bool
bAns := cast.ToBool("true");
bAns := cast.ToBool(0);
//转数字, int uint 16, 32, 64 short, float 啥都支持
num := cast.ToInt("150");
num := cast.ToUint("150");
num := cast.ToInt(8.31);
num := cast.ToInt(true); // 1 false-> 0
//转字符串
strNum := cast.ToString(150);
strFloat := cast.ToString(8.31);
cast.ToString([]byte("one time")) // "one time"
cast.ToString(nil) // ""
var foo interface{} = "one more time"
cast.ToString(foo) // "one more time"
// 时间转换
timeTime := cast.ToTime("2021-03-21 11:00:00");
timeDuration := cast.ToDuration("1d");
看了这个库你还想写冗杂的判断error代码吗? 欢迎评论区讨论!