Does Rust have syntax for initializing a struct fi

2019-09-05 13:45发布

Example code, does not compile:

pub struct S {
    pub a: int,
    pub b: int
}

impl S {
    pub fn new(input: int) -> S {
        S { a: input + 1, b: a }
    }
}

The b: a bit isn't valid syntax, is there any way to do this in current Rust? [rustc 0.13.0-nightly (eedfc0779 2014-11-25 22:36:59 +0000)]

Obviously I could repeat input + 1 or use a temporary variable, but I'm curious specifically about using an already-initialized field as input to another field.

标签: rust
1条回答
手持菜刀,她持情操
2楼-- · 2019-09-05 14:00

No, there is not anything for that, nor is it reasonable to expect that there ever will be; Rust’s ownership semantics would make it of very little value as it could only apply to Copy types well, references too.

The alternatives are so simple that complicating the language for such a feature is pretty much guaranteed not to happen.

查看更多
登录 后发表回答