请教:借用检查的分析

💡 原文中文,约600字,阅读约需2分钟。
📝

内容提要

本文介绍了 Rust 中的可变借用规则,重点讲解了在重叠作用域中进行可变借用的情况,以及没有实现 Copy trait 的情况下的可变借用。作者通过代码示例说明了为什么不会违反借用规则,并测试了可变借用的编译通过情况。

🎯

关键要点

  • 本文介绍了 Rust 中的可变借用规则。
  • 重点讲解了在重叠作用域中进行可变借用的情况。
  • 讨论了没有实现 Copy trait 的情况下的可变借用。
  • 通过代码示例说明了为什么不会违反借用规则。
  • 测试了可变借用的编译通过情况。
  • 第一次可变借用 data 后,第二次可变借用 data 通过解引用 ref1 实现。
  • ref1 和 ref2 的作用域重叠,但实际可以通过编译。
  • 猜测可以通过编译是因为 *ref1 拥有 data 的 write、read、own 权限。
  • 拥有 own 权限是因为整型 10 实现了 Copy trait。
  • 测试没有实现 Copy trait 的情况,依然可以编译通过,推测不成立。
➡️

继续阅读