传递借用的数据
Rust 对于引用的规则也许最好用以下的方式总结:
- Rust 只允许同时存在一个可变引用或者多个不可变引用,不允许可变引用和不可变引用同时存在。
- 一个引用永远也不会比它的所有者存活得更久。
而在函数间进行引用的传递时,以上这些通常都不会成为问题。
内存细节:
- 上面的第一条规则避免了数据争用的出现。什么是数据争用?在对数据进行读取的时候,数据争用可能会因为同时存在对数据的写入而产生不同步。这一点往往会出现在多线程编程中。
- 而第二条引用规则则避免了通过引用而错误的访问到不存在的数据(在 C 语言中被称之为悬垂指针)。