数组/切片 - Rust By Example
Description: Rust by Example (RBE) is a collection of runnable examples that illustrate various Rust concepts and standard libraries.

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# 数组/切片

与元组类似，数组和切片也可以用这种方式解构：

    fn main() {
        // 尝试改变数组中的值，或将其变成切片！
        let array = [1, -2, 6];

        match array {
            // 将第二个和第三个元素分别绑定到相应的变量
            [0, second, third] =>
                println!("array[0] = 0，array[1] = {}，array[2] = {}", second, third),

            // 单个值可以用 _ 忽略
            [1, _, third] => println!(
                "array[0] = 1，array[2] = {}，array[1] 被忽略了",
                third
            ),

            // 你也可以绑定一部分值并忽略其余的
            [-1, second, ..] => println!(
                "array[0] = -1，array[1] = {}，其他所有的都被忽略了",
                second
            ),
            // 下面的代码无法编译
            // [-1, second] => ...

            // 或者将它们存储在另一个数组/切片中（类型取决于
            // 正在匹配的值的类型）
            [3, second, tail @ ..] => println!(
                "array[0] = 3，array[1] = {}，其他元素是 {:?}",
                second, tail
            ),

            // 结合这些模式，我们可以，例如，绑定第一个和
            // 最后一个值，并将其余的存储在一个单独的数组中
            [first, middle @ .., last] => println!(
                "array[0] = {}，中间部分 = {:?}，array[2] = {}",
                first, middle, last
            ),
        }
    }

### 另请参阅：

关于 `@` 符号的更多信息，请参阅数组和切片和绑定