Rust 中的字符类型 char 用于表示单个 Unicode 标量值,占用 4 个字节(32 位)。与许多其他语言不同,Rust 的
char 直接支持 Unicode,这意味着它可以表示任何有效的 Unicode 字符,包括 ASCII、中文、表情符号等。
let c1: char = 'a';
let c2: char = '中';
let c3: char = '❤';
println!("{}, {}, {}", c1, c2, c3);
// 输出: a, 中, ❤
也可以使用 Unicode 转义:
let emoji: char = '\u{1F600}';
注意:Rust 使用单引号 ' 定义字符,双引号
" 定义字符串。混淆两者会导致编译错误。
字符类型的基本操作
Rust 为 char 类型提供了多种内置方法,用于字符分类和转换。
fn main() {
let c = 'A';
// 类型判断
println!("是字母? {}", c.is_alphabetic());
println!("是数字? {}", c.is_numeric());
println!("是字母数字? {}", c.is_alphanumeric());
println!("是控制字符? {}", c.is_control());
println!("是空白? {}", c.is_whitespace());
println!("是小写? {}", c.is_lowercase());
println!("是大写? {}", c.is_uppercase());
}
单字节字符
Rust 中的char默认占 4 字节;如果你需要完全像 C 语言一样使用单字节字符,应该使用u8或i8,并结合字节字面量。
// C 语言:
// char c = 'A'; // 1 字节,可能是 signed 或 unsigned
// unsigned char uc = 'B'; // 1 字节,无符号
// signed char sc = -1; // 1 字节,有符号
// Rust :
let c: u8 = b'A'; // 1 字节,等价于 unsigned char
let sc: i8 = -1; // 1 字节,等价于 signed char
let raw: u8 = 65; // 1 字节,直接数值
println!("{}",c as char); //输出 A