不可变切片(Immutable Slice):
fn main() {
let arr = [1, 2, 3, 4, 5];
// 创建一个不可变切片,包含索引 1 到 3 的元素
let slice: &[i32] = &arr[1..4];
println!("Slice: {:?}", slice);
}
在上述例子中,&arr[1..4] 创建了一个不可变切片,包含数组 arr 的索引 1 到 3 的元素。切片的类型是 &[i32]。
可变切片(Mutable Slice):
fn main() {
let mut arr = [1, 2, 3, 4, 5];
// 创建一个可变切片,包含索引 1 到 3 的元素
let slice: &mut [i32] = &mut arr[1..4];
// 修改切片中的元素
slice[0] = 99;
println!("Array: {:?}", arr);
}
在这个例子中,&mut arr[1..4] 创建了一个可变切片,允许修改切片中的元素。注意,整个数组 arr 仍然是可变的,但切片的范围是有限的。
切片对于处理集合的一部分非常有用,尤其是在函数参数中,允许以灵活的方式处理不同大小的数据块。例如,函数可以接受切片作为参数,而不需要考虑具体的集合类型。
转载请注明出处:http://www.zyzy.cn/article/detail/13724/Rust