golang如何运行rune()函数

del*_*lta 1 go

我在网上发布了一个rune()在golang 中使用该功能的功能,但我很难查找它是什么.我正在阅读教程,对文档缺乏经验,因此很难找到我要找的东西.

具体来说,我试图了解为什么这会失败......

fmt.Println(rune("foo"))
Run Code Online (Sandbox Code Playgroud)

而这不是

fmt.Println([]rune("foo"))
Run Code Online (Sandbox Code Playgroud)

jus*_*ius 6

rune是Go中的一种类型.它只是一个别名int32,但它通常用于表示Unicode点.rune()不是函数,它是类型转换的语法rune.Go中的转换总是具有type()可能使它们看起来像函数的语法.

第一位代码失败,因为在Go中没有定义字符串到数字类型的转换.但是,在语言规范中将字符串转换为符文runes/int32s的切片是这样定义的:

将字符串类型的值转换为符文类型切片会生成包含字符串的各个Unicode代码点的切片.[ golang.org ]

因此,您的示例将打印一片值为102,111和111的符文