琉离铟落的小窝琉离铟落的小窝
← 返回文章列表
2026-06-24
#Cangjie#入门教程

字符型

仓颉的基本数据类型

2.3.1 什么是字符型?

字符型Rune 表示,用来存放单个字符——可以是中文、英文、数字、符号等任何 Unicode 字符。

💡TIP

Rune 可以理解为一个"超级字符",它不限于 ASCII,能表示世界上几乎所有的文字和符号。


2.3.2 字符字面量

仓颉的字符字面量以 r 开头,用单引号或双引号包裹:

Cangjie
let a: Rune = r'a'    // 单引号包裹
let b: Rune = r"b"    // 双引号包裹,效果一样

字符字面量有三种写法:

1. 直接写字符

最简单的方式,直接把字符放进引号里:

Cangjie
let ch1: Rune = r'仓'
let ch2: Rune = r'A'
let ch3: Rune = r'9'

2. 转义字符

有些字符无法直接写出来(比如换行、制表符),需要用 \ 转义:

转义写法 含义 说明
r'\n' 换行 最常用的转义字符
r'\t' 制表符 相当于按一次 Tab
r'\\' 反斜杠 \ 因为 \ 本身是转义符号,要写两个
r'\'' 单引号 ' 在单引号内使用单引号时需要转义
r'\"' 双引号 " 在双引号内使用双引号时需要转义
Cangjie
let newLine: Rune = r'\n'   // 换行符
let tab: Rune = r'\t'       // 制表符
let slash: Rune = r'\\'     // 反斜杠本身

3. 通用字符(Unicode 转义)

\u{十六进制数} 来表示任意 Unicode 字符,花括号内写 1~8 位十六进制数:

Cangjie
main() {
    let he: Rune = r'\u{4f60}'    // Unicode 4f60 = "你"
    let llo: Rune = r'\u{597d}'   // Unicode 597d = "好"
    print(he)
    print(llo)
}

运行结果:

Bash
你好
ℹ️NOTE

\u{} 中的十六进制数就是字符的 Unicode 编码值。你可以通过 Unicode 查询表找到任何字符对应的编码。


2.3.3 小结

写法 示例 说明
直接写字符 r'仓' 最直观
转义字符 r'\n'r'\t'r'\\' 用于无法直接输入的特殊字符
通用字符 r'\u{4f60}' 用 Unicode 编码表示任意字符

2.3.4 常见问题

Q1:`Rune` 和 `String` 有什么区别?

  • Rune 表示一个字符,比如 r'A'r'仓'
  • String 表示一串字符,比如 "你好"

可以理解为:String 是多个 Rune 排成一队。一个 String 可以拆分成多个 Rune,多个 Rune 可以拼成一个 String

Q2:为什么字符前面要加 `r`?

r 是仓颉用来区分"字符"和"字符串"的标记。如果不加 r'A' 会被当作字符串(String),而不是字符(Rune)。

Cangjie
let a = 'A'       // 这是 String 类型(字符串)
let b = r'A'      // 这是 Rune 类型(字符)
💡TIP

可以这样记:r = "单个字符"(Run e)。

Q3:怎么查看一个字符的 Unicode 编码?

有很多方法:

  • 在搜索引擎搜索"Unicode 编码表"
  • 使用在线工具,输入字符就能查到编码
  • 在编程中可以用 \u{} 反推

比如查"你"字的编码,搜索"你 Unicode"会告诉你它的编码是 U+4F60,所以在仓颉中写 r'\u{4f60}' 就表示"你"字。