golang rune類型

golang中rune類型

    在golang中rune等同於int32,只是通常用於字符轉換。golang中len()方法主要計算數組長度。golang中默認存儲字符串是採用utf8格式,utf8採用變長字節存儲,英文字母是單字節存儲,中文是3個字節存儲,因此-1和-2的執行結果是16和15。golang中有utf8.RuneCountInString和[]rune()兩種方式將utf8轉換成4個字節的int32存儲,而後計算int32數組的長度。golang

-1
 address := "this is shanghai"
 fmt.Println("len(address):",len(address))
 
 -2
 address := "this is shanghai"
 fmt.Println("len(address):",len(address))
 
 -3
 addressThree := "這是在上海"     
 fmt.Println("len(address):",utf8.RuneCountInString(addressThree))

 -4
 fmt.Println("len(address):",len([]rune(addressThree)))
 
 -5 
 unicode.Is(unicode.Han, c) //能夠判斷字符是不是漢語

結果數組

-1 
len(address): 16

-2
len(address): 15

-3
len(address): 5

-4
len(address): 5