小编cod*_*T4N的帖子

仅具有原始类型的 Rust 结构仍然被移动?

所以,我在 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特征。那么应该允许编译。我在这里缺少什么?

struct rust

-1
推荐指数
1
解决办法
71
查看次数

标签 统计

rust ×1

struct ×1