手册
目录
切片是指向内存块的指针。 切片可用于访问存储在连续内存块中的部分数据。 它可以与数组、向量和字符串等数据结构一起使用。 切片使用索引号来访问部分数据。 切片的大小在运行时确定。
切片是指向实际数据的指针。 它们通过函数引用传递,这也称为借用。
例如,切片可用于获取字符串值的一部分。 切片字符串是指向实际字符串对象的指针。 因此,我们需要指定字符串的起始和结束索引。 索引和数组一样从0开始。
let sliced_value = &data_structure[start_index..end_index]
最小索引值为0,最大索引值为数据结构的大小。 请注意,end_index 将不会包含在最终字符串中。
下图显示了一个示例字符串Tutorials,它有 9 个字符。 第一个字符的索引为 0,最后一个字符的索引为 8。
以下代码从字符串中获取 5 个字符(从索引 4 开始)。
fn main() {
   let n1 = "Tutorials".to_string();
   println!("length of string is {}",n1.len());
   let c1 = &n1[4..9]; 
   
   // 获取 4、5、6、7 和 8 索引处的字符
   println!("{}",c1);
}
length of string is 9 rials
main() 函数声明一个包含 5 个元素的数组。 它调用 use_slice() 函数并向其传递一个包含三个元素的切片(指向数据数组)。 切片通过引用传递。 use_slice() 函数打印切片的值及其长度。
fn main(){
   let data = [10,20,30,40,50];
   use_slice(&data[1..4]);
   // 这是暂时有效地借用元素
}
fn use_slice(slice:&[i32]) { 
   // 正在获取一个切片或借用 i32 数组的一部分
   println!("length of slice is {:?}",slice.len());
   println!("{:?}",slice);
}
length of slice is 3 [20, 30, 40]
&mut 关键字可用于将切片标记为可变。
fn main(){
   let mut data = [10,20,30,40,50];
   use_slice(&mut data[1..4]);
   // passes references of 
   20, 30 and 40
   println!("{:?}",data);
}
fn use_slice(slice:&mut [i32]) {
   println!("length of slice is {:?}",slice.len());
   println!("{:?}",slice);
   slice[0] = 1010; // replaces 20 with 1010
}
length of slice is 3 [20, 30, 40] [10, 1010, 30, 40, 50]
上面的代码将一个可变切片传递给use_slice()函数。 该函数修改原始数组的第二个元素。
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
							
							共5课时
17.2万人学习
							
							共49课时
77万人学习
							
							共29课时
61.7万人学习
							
							共25课时
39.3万人学习
							
							共43课时
70.9万人学习
							
							共25课时
61.6万人学习
							
							共22课时
23万人学习
							
							共28课时
33.9万人学习
							
							共89课时
125万人学习