字符是 Unicode 标量值。
构造子
Char.mk
字符由 Char 类型表示,它可以是任何 Unicode 标量值。
字符串是 UTF-8 编码的字节数组,而字符则由完整的 32 位值表示。
Lean 为字符字面量提供了特殊的语法。
从 Lean 的逻辑角度来看,字符由一个 32 位无符号整数和一个证明它是有效 Unicode 标量值的证明组成。
作为一个平凡包装器,字符的表示方式与 UInt32 完全相同。
特别地,在单态语境中,字符被表示为 32 位立即数。
换句话说,类型为 Char 的构造子或结构体的字段不需要间接引用即可访问。
在多态语境中,字符是装箱的。
字符字面量由包含在单引号(',Unicode 'APOSTROPHE' (U+0027))内的单个字符或转义序列组成。
在这些单引号之间,字符字面量可以包含除 ' 之外的字符,包括换行符,这些字符将被字面量地包含进来(无论文件编码和平台如何,Lean 源文件中的所有换行符都会被解释为 '\n')。
特殊字符可以使用反斜杠进行转义,因此 '\'' 是一个包含单引号的字符字面量。
接受以下形式的转义序列:
\r, \n, \t, \\, \", \'
这些转义序列具有通常的含义,分别映射到 CR、LF、制表符、反斜杠、双引号和单引号。
\xNN
当 NN 是两个十六进制数字的序列时,此转义序列表示其 Unicode 代码点由该两位十六进制代码指定的字符。
\uNNNN
当 NN 是四个十六进制数字的序列时,此转义序列表示其 Unicode 代码点由该四位十六进制代码指定的字符。
将 8 位无符号整数转换为字符。
该整数的值被解释为 Unicode 代码点。
有两种方法可以将字符转换为字符串。
Char.toString 将字符转换为仅包含该字符的单字符字符串,而 Char.quote 将字符转换为相应字符字面量的字符串表示。
如果字符是 ASCII 字母或数字,则返回 true。
ASCII 字母如下:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz。 ASCII 数字如下:0123456789。
将小写 ASCII 字母转换为相应的大写字母。 ASCII 字母表之外的字母将原样返回。
小写 ASCII 字母如下:abcdefghijklmnopqrstuvwxyz。
将大写 ASCII 字母转换为相应的小写字母。 ASCII 字母表之外的字母将原样返回。
大写 ASCII 字母如下:ABCDEFGHIJKLMNOPQRSTUVWXYZ。