Ключевое слово unsafe переносит ответственность
| Безопасна ли память? | Ответственность за безопасность памяти | |
|---|---|---|
| Безопасный Rust | Да | Компилятор |
| Небезопасный код в Rust | Да | Программист |
This slide should take about 3 minutes.
Кто отвечает за безопасность памяти?
- Безопасный Rust → компилятор
- Небезопасный Rust → программист
«Пока вы пишете безопасный Rust, вы не можете создать проблемы с безопасностью памяти. Компилятор не даст собрать программу с ошибками».
«Ключевое слово unsafe переносит ответственность за поддержание безопасности памяти с компилятора на программистов. Оно сигнализирует, что есть предусловия, которые должны выполняться».
«Чтобы выполнять эту ответственность, программисты должны убедиться, что они поняли, каковы предусловия, и что их код всегда им удовлетворяет».
«На протяжении всего курса мы будем использовать термин предусловия безопасности для описания этой ситуации».