Введение во времена жизни в Rust
Время жизни говорит, как долго ссылка имеет право смотреть на значение. Пока данные живы, ссылка на них безопасна; когда владелец исчезает, указатель должен исчезнуть раньше. Язык проверяет это при сборке, а не во время работы программы.
В основном учебнике мы уже пользовались ссылками на строки и поля структур. Там компилятор сам подбирал срок, и в сигнатуре ничего лишнего не писали. В этом разделе разберем, когда ту же связь нужно записать явно и как читать такие записи в типах.
Особенно это важно, когда функция возвращает ссылку или когда структура хранит ссылку в поле. Без общего срока у входа и выхода можно случайно отдать указатель на память, которая уже освобождена. Проверка времени жизни отсекает такие места до запуска.
Дальше разберем явную пометку у параметров и результата, запрет вернуть ссылку на локальную строку, структуру с полем-ссылкой, вывод пометки компилятором, срок на всю программу и задачи на закрепление.