本文へスキップ
BecomeCoder

Rustのエラー · エラー12

index out of bounds ― 配列・スライスの範囲外アクセス(実行時 panic)

Vec配列に、存在しない添字で [] アクセスすると実行時に panic します。.get() と違い []Option を返さず、直接落ちます。

出るコード

fn main() {
    let nums = vec![1, 2, 3];
    println!("{}", nums[10]);   // 添字は 0〜2
}

エラーメッセージ

thread 'main' panicked at src/main.rs:3:20:
index out of bounds: the len is 3 but the index is 10

直し方

範囲外でも落ちない nums.get(10) を使い、Option として「無い場合」を処理します。事前に nums.len() で長さを確認する方法もあります。