Расширенные возможности
К этому моменту вы уже изучили наиболее часто используемые части языка программирования Rust. Прежде чем в главе 21 выполнить еще один проект, мы рассмотрим несколько аспектов языка, с которыми вы можете время от времени сталкиваться, но, возможно, не будете использовать каждый день. Эту главу можно использовать как справочник, когда вы столкнетесь с чем-то незнакомым. Возможности, рассматриваемые здесь, полезны в очень конкретных ситуациях. Хотя вы, возможно, не будете часто к ним обращаться, мы хотим убедиться, что у вас есть представление обо всех возможностях, которые Rust предлагает.
В этой главе мы рассмотрим:
- Unsafe Rust: как отказаться от некоторых гарантий Rust и взять на себя ответственность за ручное поддержание этих гарантий
- Расширенные трейты: связанные типы, параметры типов по умолчанию, полностью квалифицированный синтаксис, супертрейты и шаблон newtype применительно к трейтам
- Расширенные типы: больше о шаблоне newtype, псевдонимы типов, never type и динамически размерные типы
- Расширенные функции и замыкания: указатели на функции и возврат замыканий
- Макросы: способы определять код, который во время компиляции определяет еще больше кода
Это широкий набор возможностей Rust, где найдется что-то для каждого! Давайте погрузимся!