Тур по Rust Зміст

Наші старі друзі

Розглянемо деякі розумні покажчики, які ми вже бачили, такі як Vec<T> та String.

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

Аналогічно, String відстежує область пам'яті у байтах, і програмно обмежує вміст, що записується до неї, щоб завжди бути коректною у кодуванні utf-8 і допомагає розіменовувати цю ділянку пам'яті до типу &str.

Обидві ці структури даних використовують небезпечне розіменування необроблених вказівників для виконання вказівників для виконання своєї роботи.

Подробиці про роботу з пам'ятю: