面试题答案
一键面试package main
import (
"fmt"
)
func main() {
str := "你好,世界"
runes := []rune(str)
for _, r := range runes {
fmt.Printf("%d ", int(r))
}
}
在Go语言中处理Unicode字符常使用rune
类型,原因如下:
- 准确表示Unicode字符:Go语言中的
rune
类型本质是int32
,它可以精确表示一个Unicode码点。在处理包含多字节字符(如中文、日文、韩文等)的字符串时,rune
能够确保每个字符都被正确处理,避免字节截断等问题。 - 遍历方便:当将字符串转换为
rune
切片后,遍历该切片就可以方便地处理字符串中的每个字符,就像上述代码中对包含中文字符的字符串进行遍历输出其Unicode码点值一样。如果使用字节(byte
)类型处理多字节字符的字符串,会因为一个字符可能由多个字节组成而变得复杂。