История изменений
Исправление
vertexua,
(текущая версия)
:
fn main() {
let arr = [1, 2, 3, 4, 5, 6];
const INDEX: usize = 1024;
println!("{:?}!", arr[INDEX]);
}
Вот кстати так отваливается ошибкой компиляции. Видно let не такой уже и иммутабельный для компилятора, раз у него все же есть адрес в мутабельной памяти и какой-то ковбойский код может через unsafe все поменять. А вот const - иммутабельный на этапе компиляции, вот этой штуке он доверяет
На этапе компиляции
error: index out of bounds: the len is 6 but the index is 1024
Исправление
vertexua,
:
fn main() {
let arr = [1, 2, 3, 4, 5, 6];
const INDEX: usize = 1024;
println!("{:?}!", arr[INDEX]);
}
Вот кстати так отваливается ошибкой компиляции. Видно let не такой уже и иммутабельный для компилятора, раз у него все же есть адрес в мутабельной памяти и какой-то ковбойский код может через unsafe все поменять. А вот const - иммутабельный на этапе компиляции, вот этой штуке он доверяет
error: index out of bounds: the len is 6 but the index is 1024
Исходная версия
vertexua,
:
fn main() {
let arr = [1, 2, 3, 4, 5, 6];
const INDEX: usize = 1024;
println!("{:?}!", arr[INDEX]);
}
Вот кстати так отваливается ошибкой компиляции.