Почему этот код компилируется?
fn get_iter() -> impl Iterator<Item = i32> {
[1, 2, 3].iter().map(|&i| i)
}
fn main() {
let _it = get_iter();
}
[1, 2, 3]
- локальная переменная, и iter()
занимает ее. Этот код не должен компилироваться, потому что возвращаемое значение содержит ссылку на локальную переменную.