2.4 字符

本篇学习 Go 的字符表示方式,并能区分 byte 与 rune 的使用场景。

字数 434 字

字符

概念说明

Go 中的“字符”本质上是整数码点。
单个字符常见用两种类型保存:byterune

语法/规则

  1. 字符字面量使用单引号,例如 'A''中'
  2. byteuint8 的别名,适合保存单字节字符。
  3. runeint32 的别名,适合保存 Unicode 字符。
  4. %c 按字符输出,%d 按整数码点输出。
  5. 字符可以参与整数运算,例如 'A' + 1

byte 与 rune 示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
package main

import "fmt"

func main() {
	var letter byte = 'A'
	var chinese rune = '中'

	fmt.Printf("letter: %c, code=%d\n", letter, letter)
	fmt.Printf("chinese: %c, code=%d\n", chinese, chinese)
}

输出结果:

1
2
letter: A, code=65
chinese: 中, code=20013

字符运算示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
package main

import "fmt"

func main() {
	var c rune = 'A'
	next := c + 1

	fmt.Printf("当前字符:%c\n", c)
	fmt.Printf("下一个字符:%c\n", next)
}

输出结果:

1
2
当前字符:A
下一个字符:B

常见错误

  1. 用双引号声明字符,例如 "A",这实际上是字符串而不是字符。
  2. byte 保存中文字符,例如 var b byte = '中',会因超出范围编译报错。
  3. 直接 Println 字符变量时看到的是数字码点,误以为字符值不对,应配合 %c 输出查看。
使用 Hugo 构建
主题 StackJimmy 设计 由 Hobin 魔改
载入天数...载入时分秒...
发表了 0 篇文章 · 发表了 46 篇笔记 · 总计 2 万 5 千字(其中笔记 25104 字)