Golang中unicode.ToTitle返回int类型而非rune类型的问题
Golang中unicode.ToTitle返回int类型而非rune类型的问题 大家好, 我刚开始学习Go语言,在查看Unicode模块时,我写了以下代码:
rune_2 := 'b'
result := unicode.ToTitle(rune_2)
println(result)
根据官方文档此处的理解,我应该得到返回值“B”,但我实际得到的是66(int32值)。我实在不明白为什么会这样,因为我遵循了官方示例中使用的相同逻辑,我甚至查看了源代码,这个方法应该返回一个rune。
更多关于Golang中unicode.ToTitle返回int类型而非rune类型的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
2 回复
在Go语言中,unicode.ToTitle 函数确实返回 rune 类型,但 rune 在Go中本质上是 int32 的别名。当你使用 println 打印时,它会输出该字符的Unicode码点(整数形式),而不是字符本身。
要正确显示字符,你需要将其转换为字符串或使用格式化输出。以下是示例代码:
package main
import (
"fmt"
"unicode"
)
func main() {
rune_2 := 'b'
result := unicode.ToTitle(rune_2)
fmt.Printf("字符: %c\n", result) // 输出: 字符: B
fmt.Println("字符串:", string(result)) // 输出: 字符串: B
fmt.Println("码点:", result) // 输出: 码点: 66
}
println 是内置函数,主要用于调试,它会直接打印数值。而 fmt 包提供了更丰富的格式化输出功能。%c 格式化动词专门用于打印字符,string() 转换可以将rune转换为字符串。



