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(),
}
}
}