ベクター
伸長可能な配列
「ベクター」は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フィードバックを取得できます。ローカル設定は不要です。