
Дан следующий код. Что произойдёт при выполнении этого кода?
rustfn main() {
let mut s = String::from("hello");
let r = &mut s;
r.push_str(" world");
let r2 = &s;
println!("{}", r2);
}
Правильный ответ: Код не скомпилируется из-за нарушения правил заимствования (cannot borrow s as immutable because it is also borrowed as mutable)
В Rust нельзя одновременно иметь активную изменяемую ссылку (&mut s) и неизменяемую ссылку (&s). Здесь r (изменяемая) ещё в области видимости, когда создаётся r2 (неизменяемая), что приводит к ошибке компиляции.
