字符(Char)
char 是一个扩展字形簇(Extended Grapheme Cluster),写在单引号里。一个英文字母是一个 char,一个汉字是一个 char,一个 emoji、一对组合字符组成的字,也各是一个 char。
print('a', '甲');
print('\x41', '\u{1F600}');
print('a' + 1);a 甲
A 😀
98字面量与转义
char 字面量支持字符串的整套转义(\n \r \t \0 \ \" \' \xHH \u{HEX}),内容必须是恰好一个字形簇:'\u{1F600}' 是一个 char;'\r\n' 也是一个簇(CR+LF 合成一个簇)。零个簇('')或多个簇('ab')报 MS1008。
码点运算与互转
char 撞上整数运算时,按字符的码点(Code Point)参与计算,结果是整数:'a' 的码点是 97,'a' + 1 得到整数 98,不再是 char。
char 与整数互转走码点中转:int(c) 取簇首码点,char(n) 按码点构造字符(非法码点运行期报 MS6000):
print(int('A'), char(66));
val first: char = "Mush"[0];
print(first);65 B
M字符串的长度单位就是 char,下标取出的永远是完整的「一个字」("Mush"[0] 得 'M')。
注意
- 没有归一化:等值比较按码点序列精确对照,预组合形与分解形不等值。实测:
'\u{65}\u{301}' == 'é'是False(字母 + 组合锐音符 vs 预组合 é); - 多码点字形的相关坑集中在 Unicode 与字形簇一页说明。
最后更新于 2026年10月7日
