Rust中的嵌套默认结构值

我试图在定义其他结构的默认值时引用结构的默认值,将默认值按原样嵌套在默认AB中。在 Rust 中执行此操作的正确方法是什么?

use std::default::Default;

struct A {
    val_1: i32,
    val_2: i32,
    val_3: Vec<String>,
}

impl Default for A {
    fn default() -> A {
        A {
            val_1: 0,
            val_2: 0,
            val_3: vec!["Hello".to_string()],
        }
    }
}

struct B {
    val_1: i32,
    val_2: i32,
    val_3: A,
}

impl Default for B {
    fn default() -> B {
        B {
            val_1: 0,
            val_2: 0,
            val_3: _____ //<---- put the default value for struct A here
        }
    }
}

回答

您只需default()像使用任何其他函数一样调用,即A::default()Default::default()

impl Default for B {
    fn default() -> B {
        B {
            val_1: 0,
            val_2: 0,
            val_3: A::default(),
            // or
            // val_3: Default::default(),
        }
    }
}


以上是Rust中的嵌套默认结构值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>