Slice types

切片类型

slice.md
commit: 5ae4a38e36135e02e01933ba81d206b1c2e9ce70
本章译文最后维护日期:2021-07-31

句法
SliceType :
   [ Type ]

切片是一种动态内存宽度类型(dynamically sized type),它代表类型为 T 的元素组成的数据序列的一个“视图(view)”。切片类型写为 [T]

切片类型通常都是通过指针类型来使用,例如:

  • &[T],共享切片('shared slice'),常被直接称为切片(slice)。它不拥有它指向的数据,只是借用。
  • &mut [T],可变切片('mutable slice')。它可变借用它指向的数据。
  • Box<[T]>, 装箱的切片('boxed slice')。

示例:

#![allow(unused)]
fn main() {
// 一个堆分配的数组,被自动强转成切片
let boxed_array: Box<[i32]> = Box::new([1, 2, 3]);

// 数组上的(共享)切片
let slice: &[i32] = &boxed_array[..];
}

切片的所有元素总是初始化过的,使用 Rust 中的安全(safe)方法或操作符来访问切片时总是会做越界检查。