Rust 中是否有用于声明一个接受结构体所有成员的构造函数的简写?

如果你有一个像这样的结构:

pub struct Foo {
    pub a: i32,
    pub b: i32,
    pub c: String,
    // and a bunch of other fields
}

有没有办法声明一个构造函数,该构造函数采用结构的成员,而无需复制/粘贴所有无数的字段名称/类型:

impl Foo {
    pub fn new(/* maaaagic */) {

    }
}

还是我必须做

impl Foo {
    pub fn new(
        a: i32,
        b: i32,
        c: String,
        // and a bunch of other args
    ) {

    }
}

回答

如果您正在使用rust-analyzer,则有一个generate new辅助可以满足您的需求。

会产生:

impl Foo {
pub fn new(a: i32, b: i32, c: String) -> Self { Self { a, b, c } }
}

以上是Rust 中是否有用于声明一个接受结构体所有成员的构造函数的简写?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>