Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Что такое небезопасный Rust

SafeRustUnsafeRust
This slide should take about 5 minutes.

«Небезопасный Rust — это надмножество безопасного Rust».

«Небезопасный Rust добавляет дополнительные возможности, например разыменование сырых указателей и вызов функций, которые при неправильном вызове могут нарушить гарантии безопасности Rust».

«Эти дополнительные возможности называются небезопасными операциями».

«Небезопасные операции составляют основу, на которой построена стандартная библиотека Rust. Например, без возможности разыменовать сырой указатель невозможно было бы реализовать Vec или Box».

«Компилятор по-прежнему помогает вам при написании небезопасного Rust. Проверка заимствований и типобезопасность по-прежнему действуют. У небезопасных операций есть свои правила, с которыми мы познакомимся на этом курсе».

Небезопасные операции из справочника Rust (не тратьте на них слишком много времени):

Следующие возможности языка нельзя использовать в безопасном подмножестве Rust:

  • Разыменование сырого указателя.
  • Чтение или запись изменяемой или небезопасной внешней статической переменной.
  • Доступ к полю объединения (union), кроме присваивания ему значения.
  • Вызов функции unsafe.
  • Вызов безопасной функции, помеченной <target_feature>, из функции, у которой нет атрибута <target_feature>, включающего те же возможности.
  • Реализация небезопасного трейта.
  • Объявление блока extern.
  • Применение небезопасного атрибута к элементу.