var str = "你好golang"
var l = len(str)
for i := 0; i < l; i++ {
fmt.Printf("%v %c %T ", str[i], str[i], str[i])
}
输出结果为:
var str = "你好golang"
//var l = len(str)
//for i := 0; i < l; i++ {
// fmt.Printf("%v %c %T ", str[i], str[i], str[i])
//}
for _, r := range str {
fmt.Printf("%v %c %T ", r, r, r)
}
输出结果为:
由此可见for 是byte类型,range是rune类型,所以循环中文的就需要用range循环 rune为UTF-8 byte为ASCII
修改字符串
var strByte = "golang"
str2 := []byte(strByte)
str2[0] = '1'
str3 := string(str2)
fmt.Println(string(str3))
var strRune = "你好golang"
str4 := []rune(strRune)
str4[0] = '2'
str5 := string(str4)
fmt.Println(str5)
输出结果为: