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边界!
浙公网安备 33010602011771号