在 Rust 中,default 关键字用于为结构体、枚举和元组生成默认值
struct Person {
name: String,
age: u32,
address: Option<String>,
}
fn main() {
let person = Person {
name: String::from("Alice"),
age: 30,
address: None,
};
let default_person = Person::default();
println!("Person: {:?}", person);
println!("Default Person: {:?}", default_person);
}
在这个例子中,我们定义了一个 Person 结构体,并为每个字段提供了默认值。然后我们创建了一个具有自定义值的 person 实例和一个使用 default 生成的默认值实例 default_person。
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
fn main() {
let message = Message::Write(String::from("Hello, world!"));
let default_message = Message::default();
println!("Message: {:?}", message);
println!("Default Message: {:?}", default_message);
}
在这个例子中,我们定义了一个 Message 枚举,并为每个变体提供了默认值。然后我们创建了一个具有自定义值的 message 实例和一个使用 default 生成的默认值实例 default_message。
fn main() {
let tuple = (1, "two", 3.0);
let default_tuple = (0, "", 0.0);
println!("Tuple: {:?}", tuple);
println!("Default Tuple: {:?}", default_tuple);
}
在这个例子中,我们创建了一个包含不同类型值的元组 tuple 和一个使用 default 生成的默认值元组 default_tuple。
注意:对于包含可选类型的枚举(例如 Option<T>),default 会生成 None。对于其他引用类型(例如 &str 或 &T),default 会生成 null(对于指针类型)或 Default::default()(对于非指针类型)。