Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Rust: borrowing, ownership, references

Что происходит с заимствованными данными после завершения функции?

Вопрос помогает проверить понимание концепции заимствования данных и их жизненного цикла в Rust.

Короткий ответ

При заимствовании данных их владение остаётся у первоначального владельца, а не передаётся функции. Поэтому данные остаются доступными после завершения функции.

Длинный ответ

В Rust заимствование данных происходит с использованием ссылок, что позволяет функции временно использовать данные без их полного владения. Ссылки бывают двух типов: неизменяемые (&T) и изменяемые (&mut T).

Пример заимствования:

fn print_value(value: &i32) {
    	println!("Value: {}", value);
}

fn main() {
    	let num = 10;
    	print_value(&num);
    	println!("Original number: {}", num); // работает, так как владение не передано
}

Особенности:

  • Заимствование через ссылку не разрушает оригинальные данные.

  • Функция, использующая заимствование, не может изменять данные (если это не изменяемая ссылка).

Когда владение передаётся? Владение передаётся, если функция принимает данные напрямую (без ссылки). Например:

fn consume_value(value: String) {
    	println!("Consumed: {}", value);
}

fn main() {
    	let msg = String::from("Hello");
    	consume_value(msg);
    	// println!("{}", msg); // Ошибка: владение передано и msg больше недоступен
}

Заимствование — это механизм, который позволяет использовать данные без их переноса. Владение остаётся у вызывающего кода, что обеспечивает безопасность.

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Rust

    Rust

Ключевые слова

#borrowing

#ownership

#references

Подпишись на Rust Developer в телеграм

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.