Golang中 strconv.Itoa()和string()的使用对比:

工作中有时会因为不严谨和疏忽(也可能是保留了之前写C的习惯),有时会犯一些坑爹的小错误,如int转string时,居然会用强制类型转换去做,导致转换后的结果是奇怪的字符,对比示例如下: 

/*
	    1.数值类型和string类型之间的相互转换可能造成值部分丢失;其他的转换仅是类型的转换,不会造成值的改变;
		2.string和数字之间转换可使用标准库strconv;
		3.x是一个字符串,T是[]byte或 []rune。这种情况下可以用string(): []byte -> string
*/
func main() {
    // TestTypeConversion
	n := 97
	n1 := string(n)
	n2 := strconv.Itoa(n)
	fmt.Println("sting(n): ", n1) 		 // 错误示例: 输出是97对应的asc码值a
	fmt.Println("strconv.Itoa(n): ", n2) // 正确示例: 输出是"97"
}

总结: 
        1.数值类型和string类型之间的相互转换可能造成值部分丢失;其他的转换仅是类型的转换,不会造成值的改变;
        2.string和数字之间转换可使用标准库strconv;
        3.或者想要转换byte数组([]byte或 []rune)为string字符串类型,这种情况下可以用string(): []byte -> string 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值