字符类型

2022-02-04 GoLang 大约 1 分钟

golang中没有专门的字符类型,如果要储存单个字符(字母),一般使用byte来保存。golang中字符使用utf-8编码。

# byte类型

package main

import "fmt"

func main() {
	// 定义字符类型的数据
	var c1 byte = 'a'
	fmt.Println(c1) // 97

	var c2 byte = '6'
	fmt.Println(c2) // 54

	var c3 byte = '('
	fmt.Println(c3) // 40
  fmt.Println(c3 + 20) // 60
  
  var c4 byte = '中'
	fmt.Println(c4) // 报错
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

看到上面的输出你可能会产生疑惑,为什么不是a而是数字97呢?这是因为在golang中字母,数字,标点等字符,底层是按照ASCII(一共规定了128个字符的编码)进行储存的。a对应的就是数字97

::: into

  1. 字符类型本质上就是一个整数,也可以直接参与运算,输出字符的时候会将对应的码值做一个输出。
  2. 汉字字符,底层对应的是unicode编码,示例对应的码值为20013。而byte表示的范围是0~255。所以就溢出了。可以使用int类型。
  3. 如果想显示对应的字符可以使用fmt.Printf

:::

golang的字符对应使用的是UTF-8编码(unicode是对应的字符集,UTF-8是Unicode的其中一种编码方案),ASCII码可以理解成Unicode的前128位。

# 转义字符

将后面的字母表示为特殊的含义

转义符 含义 Unicode值
\b 退格 \u0008
\n 换行 \u000a
\r 回车 \u000d
\t 制表符(tab) \u0009
\ " 双引号 \u0022
\ ' 单引号 \u0027
\ \ 反斜杠 \u005c
上次编辑于: 2023年7月4日 09:36