2016-08-24 37 views
-1

我遇到一个在线发布的函数,它在golang中使用rune()函数,但我很难查找它是什么。我正在阅读教程,对文档缺乏经验,所以很难找到我正在寻找的内容。golang rune()函数是如何工作的

具体来说,我想知道为什么失败?

fmt.Println(rune("foo")) 

这并不

fmt.Println([]rune("foo")) 
+4

符的切片'rune'是一种类型的,不是一个函数。 – JimB

+0

该代码试图从类型字符串到类型符文和[]符文进行[转换](https://golang.org/ref/spec#Conversions)。符文是一个unicode代码点。你不能将一个字符串转换成单个符文,但是你可以像第二个例子中那样将它转换为符文片段。 – Michael

+0

在你熟悉符文 – Sridhar

回答

5

rune在Go类型。它只是int32的别名,但通常用于表示Unicode点。 rune()不是函数,它是用于转换为rune的类型的语法。 Go中的转化总是有语法type(),这可能会使它们看起来像函数。

第一位代码失败,因为在Go中没有定义字符串转换为数字类型。然而,为了符/ int32s切片转换串被定义像这样的语言规范:

字符串类型的值转换为符文类型的切片产生包含字符串的各个Unicode代码点的 切片。

所以你的示例打印具有值102,111和111

+0

的时候思考char,你可以编辑你的文章以包含你发现那个信息的链接吗? – deltaskelta