简述一下Go的 rune 类型?

在Go语言中,runeint32的别名,通常用于处理Unicode字符。Unicode是一种字符集,它可以表示世界上大多数的文字字符,包括各种符号、表情符号等。

每个rune值代表一个Unicode字符的Unicode码点。例如,字母A的Unicode码点是65,因此,你可以用rune65来表示字母A

下面是一个使用rune的例子:

package main

import "fmt"

func main() {
    var r rune = 'A'
    fmt.Println(r)        // 输出:65
    fmt.Printf("%c\n", r) // 输出:A
}

在这个例子中,我们创建了一个rune变量r,并赋予了它字母A的Unicode码点。然后,我们打印了这个rune值和它代表的字符。

需要注意的是,Go语言的字符串是由rune序列组成的。可以通过遍历字符串来处理每个rune,例如:

package main

import "fmt"

func main() {
    s := "hello, 世界"
    for i, r := range s {
        fmt.Printf("%d: %c\n", i, r)
    }
}

在这个例子中,我们遍历了字符串s的每个rune,并打印了它的位置和它代表的字符。由于rune可以正确处理Unicode字符,所以这个例子可以正确打印出ASCII字符和非ASCII字符。

发表评论

后才能评论