相信小伙伴们在用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代码吗? 欢迎评论区讨论!