Compare commits

...

4 Commits

Author SHA1 Message Date
akulij
b29d2cbecc vault backup: 2025-11-19 09:40:15 2025-11-19 09:40:15 +07:00
akulij
cf0e32bb64 vault backup: 2025-11-19 09:37:22 2025-11-19 09:37:22 +07:00
akulij
41f6c241b1 vault backup: 2025-11-19 09:31:52 2025-11-19 09:31:52 +07:00
akulij
35d1537bcb vault backup: 2025-11-19 09:19:02 2025-11-19 09:19:02 +07:00

View File

@ -245,7 +245,9 @@ fn get_entities_at<T, const N: usize>(entities: &mut [T], indices: [usize; N]) -
```rust ```rust
**Kod** **Kod**
``` ```
Но, оно нужно не только Но, оно нужно не только для этого. При написании такого комментария программист лишний раз подумает, какие инварианты нужно соблюсти. А ещё, упрощает нахождение бага, так как можно сравнить условия, когда возникает баг, с теми условиями, что прописаны в комментариями. И баг по безопасности будет возникать возникать только в unsafe блоках. Правда, при всплытии в одном месте, причиной возникновения может стать unsafe блок в совершенно другом месте. Поэтому, хотелось бы сузить количество кода для поиска бага, поэтому старайтесь уменьшать блоки unsafe.
### Хорош тот unsafe, которого нет
Самую главную рекомендацию
**Начать с проблемы, когда компилятор не может гарантировать безопасность по памяти (но без этого невозможно написать программу), возможно из ub** **Начать с проблемы, когда компилятор не может гарантировать безопасность по памяти (но без этого невозможно написать программу), возможно из ub**
Допустим, на вход вашей функции Допустим, на вход вашей функции