在 Rust 中,切片(Slice)是对集合中一部分元素的引用。切片允许你引用一个集合(通常是数组或字符串)的一部分,而不需要复制数据。切片的类型写作 &[T],其中 T 是切片引用的元素类型。切片有两种形式:可变切片和不可变切片。

不可变切片(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