给出下面的代码:
let x = 5; let y = x; println!("{}", x);
就我所阅读的而言,我了解到上述代码将由于x的值已移至y而最终出错。但这不是那样的。我已经用整数和字符串尝试了上面的代码,它可以正常工作。
默认情况下,Primitives类型实现复制特征。因此,在这种情况下,将x的值复制到y中。尝试对任何未实现复制特性的事情(例如String)执行相同的操作,您将遇到编译时错误。每次将变量分配给另一个变量时,创建副本的效率都很低。但是,某些内容可以轻松复制。