Ownership(所有权)
在 C/C++ 编程中,对于内存的使用,需要非常谨慎,在日常的代码调试中,90%的问题都是处理内存问题。例如:
- 内存忘记释放导致内存泄露
- 内存释放多次
- 内存索引超出限制
- 多个任务同时操作内存
- 操作已经释放的内存
这些错误通常很难一眼发现,需要用到coredump工具、反汇编定位、strace等去跟踪定位,耗费大量的工作时间。
Rust 利用所有权机制,完美得解决了内存管理的问题,同时并不需要昂贵的开销,效率与C几乎一样。
在 Rust 中,每个变量都有所有权,在理解所有权前,你需要了解 拷贝
和 移动
语义。在 Rust 的 =
语句中,经常需要考虑 =
的效果是拷贝还是移动操作。通常意味着变量所有权可能变化。