Почему Rust допускает мутацию через поле ссылки с использованием неизменяемой привязки?
аю второе издание Rust Book и нашел следующий пример в разделе итераторов:
let v1 = vec![1, 2, 3];
let v1_iter = v1.iter();
for val in v1_iter {
println!("Got: {}", val);
}
Почему компилятор не жалуется, чтоv1_iter
неизменен? В книге говорится, что цикл for стал владельцемv1_iter
и сделал его изменчивым за кулисами, но можете ли вы преобразовать неизменяемую переменную в изменяемую?