Разберите, почему перемещение Box<T> не перемещает объект в памяти, но всё равно может быть запрещено при активной ссылке на этот объект.
База Hintsage
Владение и заимствование
Ownership, borrowing, moves и правила безопасной памяти.
Практика
Вопросы: Владение и заимствование
Объясните механизм двухфазного изменяемого заимствования в вызове метода, где аргумент вычисляется из того же объекта.
Разберите ошибку компиляции: какая связь между временем жизни ссылки и владельцем значения нарушена?
fn make_label() -> &str {
let label = String::from("ready");
&label
}
fn main() {
println!("{}", make_label());
}
Объясните механизм: почему Rust иногда разрешает изменить значение сразу после последнего чтения через неизменяемое заимствование, хотя ссылка ещё находится в области видимости?
Практическая ситуация: функция многократно передаёт одну изменяемую ссылку в другие вызовы. Почему исходная ссылка остаётся доступной после каждого вызова?
В какой момент Rust освобождает ресурс, принадлежащий локальной переменной, если её владелец выходит из области видимости?
Что происходит со структурой Rust после перемещения из неё одного поля, если остальные поля не перемещены?
На каком основании Rust разрешает вернуть заимствованную ссылку из функции, получившей несколько входных заимствований?
Какое правило заимствования гарантирует отсутствие конфликта между чтением и записью данных?
Как изменится доступ к значению после передачи его владельца в другую переменную, если тип значения не реализует Copy?
Показано 41–50 из 50