小编Lon*_*ami的帖子

在 Rust 中是否保证了 struct 字段的初始化顺序?

我在Constructors - The Rustonomicon 中找不到任何对此的引用。是否保证下面的代码...

struct Mutates {
    n: usize,
}

impl Mutates {
    fn side_effects(&mut self) -> usize {
        self.n += 1;
        self.n
    }
}

#[derive(Debug)]
struct Struct {
    a: usize,
    b: usize,
}

fn main() {
    let mut m = Mutates { n: 0 };

    // note the order of the fields
    dbg!(Struct {
        a: m.side_effects(),
        b: m.side_effects(),
    });
    dbg!(Struct {
        b: m.side_effects(),
        a: m.side_effects(),
    });
}
Run Code Online (Sandbox Code Playgroud)

...将始终打印以下内容?

[src/main.rs:22] Struct{a: m.side_effects(), b: m.side_effects(),} = …
Run Code Online (Sandbox Code Playgroud)

struct initialization rust

7
推荐指数
1
解决办法
448
查看次数

标签 统计

initialization ×1

rust ×1

struct ×1