Rust中嵌套的默认结构值



我试图在定义其他结构的默认值时引用一个结构的默认数值,将默认A嵌套在默认B中。在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(),
}
}
}

最新更新