Trait std::default::Default 1.0.0[−][src]
pub trait Default {
fn default() -> Self;
}
Expand description
一个用于给类型提供有用的默认值的 trait。
有时,您希望回退到某种默认值,而不必特别关心它是什么。
这经常出现在定义一组选项的 struct
中:
struct SomeOptions {
foo: i32,
bar: f32,
}
Run我们如何定义一些默认值? 您可以使用 Default
:
#[derive(Default)]
struct SomeOptions {
foo: i32,
bar: f32,
}
fn main() {
let options: SomeOptions = Default::default();
}
Run现在,您将获得所有默认值。Rust 为各种原始类型实现 Default
。
如果要覆盖特定选项,但仍保留其他默认值:
fn main() {
let options = SomeOptions { foo: 42, ..Default::default() };
}
RunDerivable
如果类型的所有字段都实现 Default
,则此 trait 可以与 #[derive]
一起使用。
当 derive
d 时,它将为每个字段的类型使用默认值。
如何实现 Default
?
提供 default()
方法的实现,该实现返回您类型的值,该值应为默认值:
enum Kind {
A,
B,
C,
}
impl Default for Kind {
fn default() -> Self { Kind::A }
}
RunExamples
#[derive(Default)]
struct SomeOptions {
foo: i32,
bar: f32,
}
RunRequired methods
返回类型的 “默认值”。
默认值通常是某种初始值,标识值或其他可能有意义的默认值。
Examples
使用内置的默认值:
let i: i8 = Default::default();
let (x, y): (Option<String>, f64) = Default::default();
let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();
Run制作自己的:
enum Kind {
A,
B,
C,
}
impl Default for Kind {
fn default() -> Self { Kind::A }
}
RunImplementors
1.11.0[src]