仓颉编程快速上手
上QQ阅读APP看书,第一时间看更新

3.2.1 使用字符类型存储单个字符

字符类型用于表示单个Unicode字符,使用Rune表示。字符类型字面量有3种形式:单个字符、转义字符和通用字符,这些字符均是由一对单引号(')括起来的。

提示

在之前的版本中,字符类型使用Char表示。当前仓颉已经引入了Rune,目前Rune与Char短期共存(用法相同),未来Char将会被删除。因此,在当前版本的官方文档中有很多地方字符类型是使用Char表示的,本书中引用的文档内容均与官方文档的写法保持一致。

1.单个字符

单个字符的字面量是将某个Unicode字符(除反斜线“\”外)定义在一对单引号中,例如:

let rune1: Rune = 'X'
let rune2: Rune = 'g'
let rune3: Rune = '+'
let rune4: Rune = '仓'
let rune5: Rune = '颉'

2.转义字符

转义字符以反斜线(\)开头。反斜线的作用是对其后面紧跟的一个字符进行转义,从而表示某个具有特定含义的字符。对于某些字符,例如换行符、制表符等,无法使用单个字符的形式来表示,这时就可以使用转义字符来表示。常用的转义字符如表3-6所示。

表3-6 常用的转义字符

图片表格

以下示例声明了5个变量,并使用常用的转义字符进行了初始化:

// n是newline的首字母
let newLine = '\n'
// t是table的首字母
let tab = '\t'
// b是backspace的首字母
let backspace = '\b'
// 反斜线表示转义字符,因此在Rune和String类型中使用“\\”表示反斜线
let backslash = '\\'
// Rune类型是用一对单引号定义的,因此在Rune类型中使用“\'”表示单引号
let singleQuote = '\''

3.通用字符

通用字符的单引号内以“\u”开头,后面加上定义在一对花括号“{}”中的1~8个十六进制数,即可表示对应的Unicode值所代表的字符。例如,“仓”字的十六进制Unicode编码为4ed3,字符'仓'可以表示为通用字符'\u{4ed3}';“颉”字的十六进制Unicode编码为9889,字符'颉'可以表示为通用字符'\u{9889}'。

let rune6: Rune = '\u{4ed3}'  // “仓”的十六进制Unicode编码为4ed3
let rune7: Rune = '\u{9889}'  // “颉”的十六进制Unicode编码为9889

通用字符的优点是可以表示所有Unicode字符,缺点是可读性差,因为各种字符的Unicode编码很难记忆。