英文原文地址:https://rufflewind.com/2017-02-15/rust-move-copy-borrow
下面是Rust语言中移动,复制和借用的图形描述。这些概念中的大多数都是Rust特有的,因此是许多学习者的常见绊脚石。
为了避免图形混乱,我试图将文本保持在最低限度。它并不意味着可以替代各种教程,但对于喜欢直观地理解概念的程序员来说,更多的是不同的观点。如果您正在学习Rust并且发现这些图形很有用,我建议使用这些图表注释您自己的代码以帮助巩固概念:)
您可以通过单击图像放大。您也可以将其作为SVG或PDF获取。
上面的两个图描绘了您拥有的数据的两种主要语义:移动语义或复制语义。
移动语义(⤳)上的图片看起来几乎太简单了。这里没有欺骗:移动语义很奇怪,因为大多数语言都允许变量被程序员使用多次。这与现实世界的大部分形成鲜明对比:我不能只是给别人一支笔,仍然用它来写作!在Rust中,任何类型未实现Copy特征的变量都具有移动语义,并且行为如图所示。
复制语义(⎘)保留用于实现Copy特征的类型。在这种情况下,每次使用对象都会产生副本,如分叉所示。
中央的两个图描绘了两
致力于:机器学习、深度学习、数据分析、算法、架构、C/C++、Rust、HTML5/webApp、Go、Python、Lua...