9

我在 Go 中找到了 rune 类型,并且有一个简单的问题,但值得解释一下。

我发现它是 int32 的别名,目的是区分数字和字符值。

http://golang.org/pkg/builtin/#rune

但是我对“符文”这个词感到困惑,它实际上代表什么?例如 uint == unsigned int

4

2 回答 2

10

但是我对“符文”这个词感到困惑,它实际上代表什么?例如 uint == unsigned int

符文代表字母。(“符文”是一组被称为符文字母的相关字母表中的字母,在采用拉丁字母表之前,这些字母被用来书写各种日耳曼语。[维基百科])。

如果一个变量rune在 Go 中有类型,你就知道它是用来保存一个 unicode 代码点的。(runecodepoint) 更短更清晰。但它是技术上的 int32,即它在内存中的表示是 int32。

于 2013-07-25T11:09:10.210 回答
5

在一般意义上,Unicode“符文”只是一个数字,就像 64(0x40) 是 ASCII 和 Unicode 中“@”的代码一样。

  • 64是实数吗?是的当然。您可以将文字 64 分配给浮点变量。
  • 64是整数吗 是的。您可以将文字 64 分配给任何整数变量。
  • 64是带符号的数字吗?是的。您可以将文字 64 分配给任何无符号变量。
  • 64是无符号数吗?是的。您可以将文字 64 分配给任何有符号变量。

package main

import "fmt"

func main() {
    var f float64
    f = 64
    var b int8
    b = 64
    var u uint16
    u = 64
    var i int
    i = 64
    fmt.Println(f, b, u, i)

}

操场


输出:

64 64 64 64

这试图表明的是 [small] 整数(以及此类文字)基本上是无类型的,即untyped

相关:符文文字

于 2013-07-25T10:57:26.110 回答