Расширенные функции Rust
К этому моменту вы уже изучили наиболее часто используемые части языка программирования Rust. Прежде чем мы перейдём к очередному проекту в главе 21, мы рассмотрим некоторые аспекты языка, с которыми вы можете сталкиваться время от времени, но, возможно, не используете каждый день. Вы можете использовать эту главу в качестве справочника, когда столкнётесь с чем-то неизвестным. Возможности, рассматриваемые здесь, полезны в очень специфических ситуациях. Хотя вы, возможно, будете прибегать к ним нечасто, мы хотим убедиться, что вы понимаете все возможности, которые Rust может предложить.
В этой главе мы рассмотрим:
- Небезопасный Rust: Как отказаться от некоторых гарантий Rust и взять на себя ответственность за ручное обеспечение этих гарантий
- Продвинутые трейты: Ассоциированные типы, параметры типа по умолчанию, полностью квалифицированный синтаксис, супертрейты и шаблон "newtype" применительно к трейтам
- Продвинутые типы: Подробнее о шаблоне "newtype", псевдонимах типов, типе
neverи динамически sized типах (типах с динамическим размером) - Продвинутые функции и замыкания: Указатели на функции и возвращение замыканий
- Макросы: Способы определения кода, который генерирует больше кода во время компиляции
Здесь представлена целая панорама возможностей Rust, где каждый найдёт что-то для себя! Давайте начнём!