一尘不染

如何索引 Golang 字符串中的字符?

go

如何获得“E”输出而不是 69?

package main

import "fmt"

func main() {
    fmt.Print("HELLO"[1])
}

Golang 是否具有将字符转换为字节的功能,反之亦然?


阅读 258

收藏
2021-11-19

共1个答案

一尘不染

解释的字符串文字是双引号 “” 之间的字符序列,使用单个字符的(可能是多字节的)UTF-8 编码。在 UTF-8 中,ASCII 字符是与前 128 个 Unicode 字符对应的单字节字符。字符串的行为类似于字节片。符文是标识 Unicode 代码点的整数值。所以,

package main

import "fmt"

func main() {
    fmt.Println(string("Hello"[1]))              // ASCII only
    fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
    fmt.Println(string([]rune("Hello, 世界")[8])) // UTF-8
}

输出:

e
e
界
2021-11-19