内容目录
Providing a default implementation
Often, when dealing with structures that represent configurations, you don't care about certain values and just want to silently assign them a standard value.
通常,当处理表示配置的结构时,你并不关心某些值,只想为其默默分配一个标准值。
Rust 使用 Default::default();
为类型分配一个默认值,相当于 C# 的 default
、default({type})
。
Rust 中几乎每个原始类型都有一个默认值。
Default::default()
使用方法如下:
// There's a default value for nearly every primitive type
let foo: i32 = Default::default();
println!("foo: {}", foo); // Prints "foo: 0"
结构体(struct)要设置默认值,需要带上 #[derive(Default)]
特性。
#[derive(Default)]
struct PizzaConfig {
wants_cheese: bool,
number_of_olives: i32,
special_message: String,
}
... ...
// A struct that derives from Default can be initialized like this
let pizza: PizzaConfig = Default::default();
// Prints "wants_cheese: false
println!("wants_cheese: {}", pizza.wants_cheese);
// Prints "number_of_olives: 0"
println!("number_of_olives: {}", pizza.number_of_olives);
// Prints "special_message: "
println!("special message: {}", pizza.special_message);
结构体设置默认值
rust 枚举默认栈需要实现 Default
接口:
// You can implement default easily for your own types
enum CrustType {
Thin,
Thick,
}
impl Default for CrustType {
fn default() -> CrustType {
CrustType::Thin
}
}
let _enum:CrustType=Default::default();
文章评论