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] = {}、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] = {}, middle = {:?}, array[2] = {}",
            first, middle, last
        ),
    }
}

関連項目:

@ 記号については、配列とスライスおよびバインディング