配列とスライス - 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 {
            // 2番目と3番目の要素を変数に束縛します。
            [0, second, third] =>
                println!("array[0] = 0, array[1] = {}, array[2] = {}", second, third),

            // _で値を無視できます。
            [1, _, third] => println!(
                "array[0] = 1, array[2] = {} and array[1] was ignored",
                third
            ),

            // いくつかの値を束縛して残りを無視できます。
            [-1, second, ..] => println!(
                "array[0] = -1, array[1] = {} and all the other ones were ignored",
                second
            ),
            // 以下のコードはコンパイルできません。
            // [-1, second] => ...

            // 別の配列やスライスに値を持たせることもできます。
            // (配列かスライスかは、マッチする値の型により異なります)
            [3, second, tail @ ..] => println!(
                "array[0] = 3, array[1] = {} and the other elements were {:?}",
                second, tail
            ),

            // 例えば、これらのパターンを組み合わせて、
            // 最初と最後の値を束縛し、残りの値を配列に持たせることもできます。
            [first, middle @ .., last] => println!(
                "array[0] = {}, middle = {:?}, array[2] = {}",
                first, middle, last
            ),
        }
    }

### 参照

配列とスライス, @マークについては束縛