Объясните, пожалуйста, логику
fn main() {
use std::mem;
let mut d = "FOO".to_owned();
let mut n = 0;
let f = || {
n += 1;
d.push_str("BAR");
mem::drop(d);
};
f();
}
Но если удалить переменную d, то будет ошибка «cannot borrow `f` as mutable, as it is not declared as mutable». Почему так?
fn main() {
let mut n = 0;
let f = || {
n += 1;
};
f();
}