去符文类型说明

时间:2013-07-25 10:41:54

标签: go

我在Go中找到符文类型并且有一个简单的问题,但值得探索。

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

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

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

2 个答案:

答案 0 :(得分:7)

  

但我对术语" rune"实际上它代表什么?例如uint == unsigned int

符文代表信件。 ("符文"是一组相关字母表中的字母,称为符文字母,在采用拉丁字母之前用于编写各种日耳曼语。[Wikipedia])。

如果变量在Go中具有类型rune,则您知道它旨在保存unicode代码点。 (runecodepoint更短更清晰。但它是技术性的int32,即它在内存中的表示形式是int32。

答案 1 :(得分:4)

在一般意义上,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)

}

Playground


输出:

64 64 64 64

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

相关:Rune Literals