Rust Copy
trait人说了这样的话:
在幕后,复制和移动都可能导致内存中的位被复制,尽管这是sometimes optimized away位.
文档提供了以下代码以供参考:
// We can derive a `Copy` implementation. `Clone` is also required, as it's
// a supertrait of `Copy`.
#[derive(Debug, Copy, Clone)]
struct Foo;
let x = Foo;
let y = x;
// `y` is a copy of `x`
println!("{x:?}"); // A-OK!
- 如何修改这段代码,以便我们可以在运行时检测(和打印)变量(
y
)是否被实际复制到内存中或被优化(通过重用x
的位置)? - 有没有任何资源来了解这里正在发生的事情的内在原因?