Ownership(所有权)

在 C/C++ 编程中,对于内存的使用,需要非常谨慎,在日常的代码调试中,90%的问题都是处理内存问题。例如:

  • 内存忘记释放导致内存泄露
  • 内存释放多次
  • 内存索引超出限制
  • 多个任务同时操作内存
  • 操作已经释放的内存

这些错误通常很难一眼发现,需要用到coredump工具、反汇编定位、strace等去跟踪定位,耗费大量的工作时间。

Rust 利用所有权机制,完美得解决了内存管理的问题,同时并不需要昂贵的开销,效率与C几乎一样。

在 Rust 中,每个变量都有所有权,在理解所有权前,你需要了解 拷贝移动 语义。在 Rust 的 = 语句中,经常需要考虑 = 的效果是拷贝还是移动操作。通常意味着变量所有权可能变化。

附录