0Pricing
Learn Rust Coding · レッスン

ベクター

伸長可能な配列

「ベクター」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全4レッスンが含まれています。

ベクターとは

Vec<T>は伸長可能な配列です。固定長配列とは異なり、ベクターは実行時にサイズを拡大または縮小できます。

すべての要素は同じ型Tでなければなりません。

fn main() {
    let v: Vec<i32> = Vec::new();
    println!("empty vector with length {}", v.len());
}

vec!による作成

vec!マクロは、初期値を持つベクターを作成する最も簡単な方法です。

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

要素の追加

pushを使うと、末尾に要素を追加できます。変更するには、ベクターをmutにする必要があります。

fn main() {
    let mut v = Vec::new();
    v.push(10);
    v.push(20);
    v.push(30);
    println!("{:?}", v);
}

要素の削除

popは最後の要素を削除し、Optionに包んで返します。ベクターが空の場合はNoneを返します。

fn main() {
    let mut v = vec![1, 2, 3];
    let last = v.pop();
    println!("removed {:?}, now {:?}", last, v);
}

インデックスによるアクセス

配列と同じように角かっこでベクターにインデックスアクセスできます。範囲外のインデックスを指定するとパニックが発生します。

fn main() {
    let v = vec!["a", "b", "c"];
    println!("first {}", v[0]);
    println!("third {}", v[2]);
}

getによる安全なアクセス

getメソッドはパニックを起こす代わりにOptionを返すため、インデックスが不明な場合に安全です。

fn main() {
    let v = vec![10, 20, 30];
    match v.get(5) {
        Some(x) => println!("found {}", x),
        None => println!("no element there"),
    }
}

ベクターの反復処理

forループでベクターの各要素を反復処理できます。&を使うと、所有権を取得せずに各要素を借用できます。

fn main() {
    let v = vec![100, 200, 300];
    for item in &v {
        println!("item {}", item);
    }
}

反復中の変更

&mutを使って反復処理すると、各要素をその場で変更できます。値を変更するには*でデリファレンスします。

fn main() {
    let mut v = vec![1, 2, 3];
    for item in &mut v {
        *item *= 10;
    }
    println!("{:?}", v);
}

ベクターの長さと空かどうかの確認

要素数にはlen()を使い、要素がないかどうかの確認にはis_empty()を使います。

fn main() {
    let v = vec![5, 6];
    println!("len {} empty {}", v.len(), v.is_empty());
}

よく使うベクターメソッド

ベクターには多くの便利なメソッドがあります:

  • contains — 要素が含まれているか確認します。
  • first / last — 先頭または末尾をOptionとして取得します。
  • sort — 要素を並べ替えます。
fn main() {
    let mut v = vec![3, 1, 2];
    v.sort();
    println!("{:?} contains 2: {}", v, v.contains(&2));
}

イテレーターによる合計

ベクターとイテレーターメソッドを組み合わせると、合計を簡潔に計算できます。

fn main() {
    let v = vec![10, 20, 30, 40];
    let total: i32 = v.iter().sum();
    println!("total {}", total);
}

クイックチェック

ベクターを拡張するメソッドを思い出しましょう。

まとめ

Rustのベクター:

  • Vec<T>は、同じ型の要素を持つ伸長可能なリストです。
  • Vec::new()またはvec![...]で作成します。
  • pushは末尾に追加し、popは末尾から削除します。
  • []または安全なgetでアクセスします。
  • for x in &vで反復処理します。
fn main() {
    let mut scores = vec![80, 90];
    scores.push(100);
    let avg: i32 = scores.iter().sum::<i32>() / scores.len() as i32;
    println!("average {}", avg);
}

よくある質問

「ベクター」レッスンは無料ですか?

はい。「ベクター」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。

「ベクター」で何を学びますか?

伸長可能な配列 ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn Rust Codingを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ベクター」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn Rust Codingレッスンでコードを書いて実行できますか?

はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ベクター
  2. Stringと&str
  3. HashMap
  4. コレクションの反復処理
← Learn Rust Codingに戻る