【golang】字符串

字符串

字符串底層是字節數組。遍歷一個字符串。想當於遍歷一個byte數組。如果字符串全都是英文字母的話,遍歷字節數組也沒啥問題。當字符串裏含有中文、日文、表情符等內容的話,按照字節數組的遍歷方式沒有太大意義。
golang中字符串的遍歷有兩種方式:

  • for i
    byte=uint
func main() {
	s := "你好hello"
	fmt.Println("len:", len(s))
	for i := 0; i < len(s); i++ {
		fmt.Printf("%T %v \n", s[i], s[i])
	}
}

// Output:
len: 11
uint8 228
uint8 189
uint8 160
uint8 229
uint8 165
uint8 189
uint8 104
uint8 101
uint8 108
uint8 108
uint8 111
  • for range
    rune=int32
func main() {
	s := "你好hello"
	fmt.Println("len:", len(s))
	for _, v := range s {
		fmt.Printf("%T %v \n", v, v)
	}
}

// Output:
len: 11
int32 20320
int32 22909
int32 104
int32 101
int32 108
int32 108
int32 111

s := “你好hello” 字符串s的長度是11字節,“hello”佔5個字節,“你好”兩個漢字佔6個字節。
golang的字符編碼是UTF8類型的。UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,UTF-8用1到4個字節編碼Unicode字符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章