Тур по Rust Содержание

Знакомые друзья (Familiar Friends)

Рассмотрим некоторые умные указатели, которые мы уже видели, вроде Vec<T> и String.

Vec<T> является умным указателем, который владеет некоторым регионом байт памяти. Компилятор Rust не имеет понятия, что находится в этих байтах. Умный указатель интерпретирует их, что означает захват элементов из этой управляемой памяти, отслеживание где начинаются и заканчиваются структуры данных в этих байтах и затем, наконец, разыменовывание сырого указателя на структуры данных в виде красивого, чистого, эргономичного интерфейса, который можно использовать (например my_vec[3]).

Аналогично String отслеживает область байт памяти, программно ограничивает записанное в её содержимое так, чтобы оно было всегда допустимым utf-8 символом и помогает разыменовать эту область памяти в тип &str.

Обе эти структуры используют небезопасное разыменование сырых указателей для выполнения своей работы.

Детали для запоминания: