golang中for循环range的坑

文章讨论了在处理字符串时遇到的问题,尤其是在使用`range`遍历过程中,IDE报错指出将int32类型的值赋给byte切片是不允许的,因为r1为int32类型,而r2为uint8类型,需进行类型转换。
摘要由CSDN通过智能技术生成

今天在刷算法题的时候发现了一个坑

func test2(s string) {
	str := make([]byte, 0)
	for _, v := range s {
		str = append(str, v)
	}
}

乍一看没什么问题,但是ide中却红了

这是为什么呢?明明字符串中的数确实是byte啊,我们写一段代码看看

func test1(s string) {
	for i, v := range s {
		r1 := v
		r2 := s[i]
	}
}

根据IDE的提示,在这个代码中,r1的类型为int32,而r2的类型为uint8

所以通过range获得的值是无法加入byte切片的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值