Por que o compilador não reclama que um iterador movido para um loop for é imutável?
Estou lendo a segunda edição do Rust Book e encontrei o seguinte exemplo na seção de iteradores:
let v1 = vec![1, 2, 3];
let v1_iter = v1.iter();
for val in v1_iter {
println!("Got: {}", val);
}
Por que o compilador não reclama quev1_iter
é imutável? O livro diz que o loop for tomou posse dev1_iter
e a tornou mutável nos bastidores, mas você pode converter uma variável imutável em mutável?