← Rust

LESSON / MIXED

配列・スライス・Vec

固定長配列、スライス、可変長のVecの基本操作と、要素への繰り返しアクセスを学びます。

固定長配列

配列は、同じ型の値を固定された個数だけ並べたものです。

fn main() {
    let numbers: [i32; 5] = [10, 20, 30, 40, 50];

    println!("{}", numbers[0]); // 10
    println!("{}", numbers.len()); // 5
}

スライス

配列やVecの一部(または全部)を参照する形式が「スライス」です。

fn main() {
    let numbers = [10, 20, 30, 40, 50];
    let middle = &numbers[1..4]; // [20, 30, 40]

    println!("{:?}", middle);
}

Vec:可変長の配列

Vec<T>(ベクタ)は、要素数を実行時に増減できるコレクションです。Foundationコースでは、主にこのVecを使っていきます。

fn main() {
    let mut numbers: Vec<i32> = Vec::new();

    numbers.push(10);
    numbers.push(20);
    numbers.push(30);

    println!("{:?}", numbers); // [10, 20, 30]
    println!("要素数: {}", numbers.len());

    numbers.pop(); // 末尾を取り除く
    println!("{:?}", numbers); // [10, 20]
}

vec!マクロを使うと、初期値を持つVecを簡単に作れます。

fn main() {
    let numbers = vec![1, 2, 3, 4, 5];
    println!("{:?}", numbers);
}

Vecを繰り返し処理する

fn main() {
    let numbers = vec![1, 2, 3, 4, 5];

    let mut sum = 0;
    for n in &numbers {
        sum += n;
    }

    println!("合計: {}", sum);
}

演習:Vecの最大値・最小値・合計

コード提出フォーム

RUST

安全なサーバー側採点連携が未接続のため、現在は提出できません。

採点基盤準備中

公開テストケース

読み込み中…