[Перевод] Небезопасные абстракции

Небезопасные (unsafe) абстракции

Ключевое слово unsafe является неотъемлемой частью дизайна языка Rust. Для тех кто не знаком с ним: unsafe — это ключевое слово, которое, говоря простым языком, является способом обойти проверку типов (type checking) Rust’а.

Существование ключевого слова unsafe для многих поначалу является неожиданностью.

В самом деле, разве то, что программы не “падают” от ошибок при работе с памятью,

не является особенностью Rust? Если это так, то почему имеется легкий способ обойти

систему типов? Это может показаться дефектом языка.

Все же, по моему мнению, unsafe не является недостатком. На самом деле он является

важной частью языка. unsafe выполняет роль некоторого выходного клапана — это значит то, что мы можем использовать систему типов в простых случаях, однако позволяя использовать всевозможные хитрые приемы, которые вы хотите использовать в вашем коде. Мы только требуем, чтобы вы скрывали эти ваши приемы (unsafe код) за безопасными внешними абстракциями.

Данная заметка представляет ключевое слово unsafe и идею ограниченной “небезопасности”.

Фактически это предвестник заметки, которую я надеюсь написать чуть позже.

Она обсуждает модель памяти Rust, которая указывает, что можно, а что нельзя делать в unsafe коде.

Читать дальше →
Source: news

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *