Расширенные функции Rust

К этому моменту вы уже изучили наиболее часто используемые части языка программирования Rust. Прежде чем мы перейдём к очередному проекту в главе 21, мы рассмотрим некоторые аспекты языка, с которыми вы можете сталкиваться время от времени, но, возможно, не используете каждый день. Вы можете использовать эту главу в качестве справочника, когда столкнётесь с чем-то неизвестным. Возможности, рассматриваемые здесь, полезны в очень специфических ситуациях. Хотя вы, возможно, будете прибегать к ним нечасто, мы хотим убедиться, что вы понимаете все возможности, которые Rust может предложить.

В этой главе мы рассмотрим:

  • Небезопасный Rust: Как отказаться от некоторых гарантий Rust и взять на себя ответственность за ручное обеспечение этих гарантий
  • Продвинутые трейты: Ассоциированные типы, параметры типа по умолчанию, полностью квалифицированный синтаксис, супертрейты и шаблон "newtype" применительно к трейтам
  • Продвинутые типы: Подробнее о шаблоне "newtype", псевдонимах типов, типе never и динамически sized типах (типах с динамическим размером)
  • Продвинутые функции и замыкания: Указатели на функции и возвращение замыканий
  • Макросы: Способы определения кода, который генерирует больше кода во время компиляции

Здесь представлена целая панорама возможностей Rust, где каждый найдёт что-то для себя! Давайте начнём!