Когда я читал документацию по ржавчине, я наткнулся на этот код , который итерирует массив a
, используя цикл while (с индексом):
fn main() {
let a = [10, 20, 30, 40, 50];
let mut index = 0;
while index < 5 {
println!("the value is: {}", a[index]);
index += 1;
}
}
Документацияговорит:
... этот подход подвержен ошибкам;мы могли бы вызвать панику программы, если длина индекса неверна.Это также медленно, потому что компилятор добавляет код времени выполнения для выполнения условной проверки каждого элемента на каждой итерации цикла.
Первая причина не требует пояснений.Вторая причина была в том, что я запутался.
Кроме того, они предложили использовать для этого цикл for.
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("the value is: {}", element);
}
}
Я просто не могу обернуться вокруг этого.Есть ли какое-то поведение, которое делает компилятор Rust?