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.
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 towell, references too.Copy
typesThe alternatives are so simple that complicating the language for such a feature is pretty much guaranteed not to happen.