Rust起飞系列: 1. 字符集

字符集

解剖Rust:

  • 字符集
  • 词汇表
  • 程序项

Rust使用Unicode字符集

  • 字符使用UTF32编码
  • 字串使用UTF8编码!

由此导致编译器限制:

  • 字串(&str)完全禁止索引
  • 字串(&str)有限支持切片, 遇到非法UTF8边界会panic!

例如:

fn main() {
    let s = "这是一个测试";
    // println!("{:?}", &s[..2]); // panic: end byte index 2 is not a char boundary;
    println!("{:?}", &s[..3]);
}

字串s是UTF8序列, 其中'这'占用3个字节! "&s[..2]"切片不是合法的UTF8边界!

posted @ 2026-07-14 15:19  HEZOF  阅读(2)  评论(0)    收藏  举报