Golang 符文

Golang 符文

在过去,我们只有一个字符集,那就是ASCII(美国信息交换标准代码)。在那里,我们用7个比特来表示128个字符,包括大写和小写英文字母、数字以及各种标点符号和设备控制字符。由于这种字符的限制,大多数人无法使用他们自定义的书写系统。为了解决这个问题,Unicode被发明了。Unicode是ASCII的一个超集,包含了当今世界书写系统中的所有字符。它包括重音、变音符号、控制代码(如制表符和回车符),并为每个字符分配一个标准数字,称为 “Unicode代码点”,或在Go语言中称为 “符文”。符文类型是int32的一个别名。

重要提示

  • 永远记住,字符串是一个字节的序列,而不是一个符文的序列。字符串可以包含以UTF-8编码的Unicode文本。但是,Go源代码编码为UTF-8,因此,不需要用UTF-8编码的字符串。
  • UTF-8对1到4个字节范围内的所有Unicode进行编码,其中1个字节用于ASCII,其余用于符码。
  • ASCII总共包含256个元素,其中128个是字符,0-127个被确定为码位。这里,码位指的是代表一个单一数值的元素。

例子

它是一个符文,十六进制值为♄。

符文字面

它代表了一个符文常量,其中一个整数值可以识别一个Unicode码位。在Go语言中,Rune Literal表示为一个或多个用单引号括起来的字符,如’g’, ‘\t’等。在单引号之间,你可以放置任何字符,除了换行和未转义的单引号。在这里,这些单引号字符本身代表了给定字符的Unicode值,而带有反斜杠的多字符序列(在多字符序列的开头)则以不同的格式编码值。在符文文学中,所有以反斜杠开头的序列都是非法的,只有以下单字符转义在你使用反斜杠时代表特殊的值。

字符 Unicode 说明
\a U+0007 警报或铃声
\b U+0008 backspace
\f U+000C form feed
\n U+000A 换行或换行
\r U+000D 回车
\t U+0009 水平制表符
\v U+000b vertical tab
\\ U+005c 反斜线
\’ U+0027 单引号
\” U+0022 双引号(仅在字符串字元中合法)

例1 :

// Simple Go program to illustrate
// how to create a rune
package main
 
import (
    "fmt"
    "reflect"
)
 
func main() {
 
    // Creating a rune
    rune1 := 'B'
    rune2 := 'g'
    rune3 := '\a'
 
    // Displaying rune and its type
    fmt.Printf("Rune 1: %c; Unicode: %U; Type: %s", rune1,
                             rune1, reflect.TypeOf(rune1))
     
    fmt.Printf("\nRune 2: %c; Unicode: %U; Type: %s", rune2,
                               rune2, reflect.TypeOf(rune2))
     
    fmt.Printf("\nRune 3: Unicode: %U; Type: %s", rune3,
                                 reflect.TypeOf(rune3))
 
}

输出

Rune 1: B; Unicode: U+0042; Type: int32
Rune 2: g; Unicode: U+0067; Type: int32
Rune 3: Unicode: U+0007; Type: int32

例2:

Golang 符文

输出

Character: ♛, Unicode:U+265B, Position:0 
Character: ♠, Unicode:U+2660, Position:1 
Character: ♧, Unicode:U+2667, Position:2 
Character: ♡, Unicode:U+2661, Position:3 
Character: ♬, Unicode:U+266C, Position:4 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程