5.2.1 Safe Rust(安全 Rust)
01-Safe Rust(安全 Rust) — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
5.2.1 Safe Rust(安全 Rust)
| |
「该实现只使用了 Safe Rust。
我们能从中得出什么?
「当用 Safe Rust 实现时,对于所有可能的输入参数,
copy都不可能触发内存安全问题。」「例如,通过 Rust 的迭代器,我们可以确保永远不会触发与直接操作指针相关的问题,比如需要空指针检查或边界检查。」
提问:「还能想到其他例子吗?」
- 没有别名(aliasing)问题
- 不可能出现悬垂指针
- 对齐(alignment)始终正确
- 不会意外读取未初始化的内存
「我们可以说
copy函数是 健全的,因为 Rust 确保所有安全前置条件都得到满足。」「从程序员的角度看,由于该函数用 Safe Rust 实现,可以认为它没有安全前置条件。」
「这并不意味着
copy总能满足调用方的一切期望。如果dest切片空间不足,数据就不会被完整复制过去。」