上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编码很难记忆。