let a: [u32; 4] = [1, 2, 3, 4];
let s: &[u32] = &a[1..3];
a[5]; と書くとコンパイルエラーが発生しますが、
s[5]; と書くとコンパイルは通り実行時にエラーが発生します。
なぜ、 s[5]; が範囲外の領域へのアクセスであることをコンパイル時に見抜けないのでしょうか?
本を見ても、理由が書いてないです。
ただ、そうなるとしか書いてありません。
Rust part24
■ このスレッドは過去ログ倉庫に格納されています
515デフォルトの名無しさん
2024/06/30(日) 20:38:10.26ID:oQ6wZd+v■ このスレッドは過去ログ倉庫に格納されています
