MST

星途 面试题库

面试题:Go语言中rune类型与Unicode字符处理的基础应用

请编写一段Go代码,实现将一个包含中文字符的字符串转换为rune切片,然后遍历该切片,输出每个rune对应的Unicode码点值(用十进制表示)。同时解释为什么在Go语言中处理Unicode字符常使用rune类型。
14.1万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
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)类型处理多字节字符的字符串,会因为一个字符可能由多个字节组成而变得复杂。