未移动变量值

问题描述 投票:0回答:1

给出下面的代码:

let x = 5;
let y = x;
println!("{}", x);

就我所阅读的而言,我了解到上述代码将由于x的值已移至y而最终出错。但这不是那样的。我已经用整数和字符串尝试了上面的代码,它可以正常工作。

rust
1个回答
0
投票

默认情况下,Primitives类型实现复制特征。因此,在这种情况下,将x的值复制到y中。尝试对任何未实现复制特性的事情(例如String)执行相同的操作,您将遇到编译时错误。每次将变量分配给另一个变量时,创建副本的效率都很低。但是,某些内容可以轻松复制。

© www.soinside.com 2019 - 2024. All rights reserved.