所以,我在 Rust Book(布朗大学版本)中发现了这段代码:
#[derive(Debug)]
struct Rectangle {
width: u32,
height: u32,
}
fn main() {
let rect1 = Rectangle {
width: 30,
height: 50,
};
let a = area(rect1);
println!("{} * {} = {}", rect1.width, rect1.height, a);
}
fn area(rectangle: Rectangle) -> u32 {
rectangle.width * rectangle.height
}
Run Code Online (Sandbox Code Playgroud)
该代码无法编译,因为当我们调用 时,area(rect1)我们移动了Rectangle. 但是Rectanglecontains 类型的字段u32是原始类型,因此实现了Copy特征。那么应该允许编译。我在这里缺少什么?