Небезпечний Rust
Мова Rust складається з двох частин:
- Safe Rust: безпека пам’яті, невизначена поведінка неможлива.
- Небезпечний Rust: може викликати невизначену поведінку, якщо порушуються попередні умови.
У цьому курсі ми розглянули переважно безпечний Rust, але важливо знати, що таке небезпечний Rust.
Небезпечний код зазвичай невеликий та ізольований, і його правильність слід ретельно задокументувати. Зазвичай він загорнутий у безпечний рівень абстракції.
Небезпечний Rust дає вам доступ до п’яти нових можливостей:
- Розіменування необроблених вказівників.
- Доступ або зміна мутабельних статичних змінних.
- Доступ до полів
union
. - Викликати
unsafe
функції, включаючиextern
функції. - Реалізація
unsafe
трейтів.
Далі ми коротко розглянемо небезпечні можливості. Щоб отримати повну інформацію, перегляньте розділ 19.1 у книзі Rust та [Rustonomicon](https://doc .rust-lang.org/nomicon/).
Небезпечний Rust не означає, що код неправильний. Це означає, що розробники вимкнули деякі функції безпеки компілятора і змушені писати коректний код самостійно. Це означає, що компілятор більше не забезпечує дотримання правил безпеки пам'яті Rust.