Rust 中的切片
字符串切片:指向字符串中一部分内容的引用
数组切片和字符串切片类似
指定起始位置和结束位置
包含起始位置但不包含结束位置
fn main() {
let s = String::from("Hello, world!");
let s2 = &s[0..5];
println!("s2: {}", s2);
}
//> s2: Hello
仅指定结束位置
不指定时,默认从0开始
fn main() {
let s = String::from("Hello, world!");
let s2 = &s[..5];
println!("s2: {}", s2);
}
//> s2: Hello
仅指定起始位置
不指定时,默认到字符串的最后一个字符
fn main() {
let s = String::from("Hello, world!");
let s2 = &s[5..];
println!("s2: {}", s2);
}
//> s2: , world!
不指定起始位置和结束位置
默认为全部字符串
fn main() {
let s = String::from("Hello, world!");
let s2 = &s[..];
println!("s2: {}", s2);
}
//> s2: Hello, world!
注意
字符串切片的范围索引必须发生在有效的UTF-8字符边界内
如果字符串中包含中文,一个中文占用三个字节,则索引位置不能指向汉字的中间位置
评论区