rustで配列のインデックス外アクセスした場合のエラータイミングを知りたい
前提
現在、以下のサイトを参考にRustの勉強を行っています。
Data Types - The Rust Programming Language
上記のサイトで
What happens if you try to access an element of an array that is past the end of the array? Say you change the example to the following code, which will compile but exit with an error when it runs:
(配列の要素外にアクセスすると、コンパイルは通りますが実行時にエラーが発生します。)
とあります。
実際に以下のコードをcargo run
するとエラーが発生しました
rust
1fn main() { 2 let a = [1, 2, 3, 4, 5]; 3 println!("{}",a[10]); 4}
Cargo run(エラー)
Compiling data-types v0.1.0 (/home/kiduki/projects/data-types) error: index out of bounds: the len is 5 but the index is 10 --> src/main.rs:25:19 | 25 | println!("{}",a[10]); | ^^^^^ | = note: #[deny(const_err)] on by default error: aborting due to previous error error: Could not compile `data-types`.
上記エラーを見ると1行目(Compiling ~)すぐ後にエラーが発生していたため、コンパイルのタイミングでエラーが発生しているのではと思い、cargo check
を実行すると正常にチェックを通りました。
Cargo check(正常終了)
Checking data-types v0.1.0 (/home/kiduki/projects/data-types) Finished dev [unoptimized + debuginfo] target(s) in 0.10s
なので、コンパイルは通るのだろうと思い、cargo build
を実行するとエラーが発生しました!
Cargo build(エラー)
Compiling data-types v0.1.0 (/home/kiduki/projects/data-types) error: index out of bounds: the len is 5 but the index is 10 --> src/main.rs:3:19 | 3 | println!("{}",a[10]); | ^^^^^ | = note: #[deny(const_err)] on by default error: aborting due to previous error error: Could not compile `data-types`.
質問
配列のインデックス外にアクセスした際のエラーは、コンパイルのタイミングに起こっているのでしょうか。あるいは、ドキュメントの通り実行時にエラーは起こっており、Cargo build
はバックグラウンドでファイルを実行しているのでしょうか。
ご教示お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/30 16:16