今天在刷算法题的时候发现了一个坑
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切片的