在日常使用Go语言进行开发时,处理字符串是再常见不过的操作。
但你是否遇到过这样的困惑:同样一个包含汉字的字符串,使用range遍历可以正常显示汉字,而使用len索引遍历却出现乱码?这里就来深入解析这一现象背后的原因。
先来看一段简单的代码:
package main
import "fmt"
func main() {
str := "hello世界"
// 使用普通for循环遍历
fmt.Println("使用普通for循环遍历:")
for i := 0; i < len(str); i++ {
fmt.Printf("%c", str[i])
}
fmt.Println("\n使用range遍历:")
// 使用range遍历
for _, char := range str {
fmt.Printf("%c", char)
}
}