本文简要介绍rust语言中 Trait std::default::Default
的用法。
用法
pub trait Default {
fn default() -> Self;
}
为类型提供有用的默认值的特征。
有时,您想回退到某种默认值,而不是特别关心它是什么。这经常出现在定义一组选项的 struct
中:
struct SomeOptions {
foo: i32,
bar: f32,
}
我们如何定义一些默认值?您可以使用 Default
:
#[derive(Default)]
struct SomeOptions {
foo: i32,
bar: f32,
}
fn main() {
let options: SomeOptions = Default::default();
}
现在,您将获得所有默认值。 Rust 为各种基本类型实现了Default
。
如果要覆盖特定选项,但仍保留其他默认值:
fn main() {
let options = SomeOptions { foo: 42, ..Default::default() };
}
可导出的
如果所有类型的字段都实现了 Default
,则此 trait 可以与 #[derive]
一起使用。当derive
d 时,它将使用每个字段类型的默认值。
如何实现 Default
?
为 default()
方法提供一个实现,该方法返回您的类型的值,该值应该是默认值:
enum Kind {
A,
B,
C,
}
impl Default for Kind {
fn default() -> Self { Kind::A }
}
例子
#[derive(Default)]
struct SomeOptions {
foo: i32,
bar: f32,
}
相关用法
- Rust Default.default用法及代码示例
- Rust Default用法及代码示例
- Rust DebugList.entries用法及代码示例
- Rust DerefMut用法及代码示例
- Rust DebugList用法及代码示例
- Rust DebugMap.key用法及代码示例
- Rust DebugStruct.finish_non_exhaustive用法及代码示例
- Rust DebugStruct.field用法及代码示例
- Rust DebugTuple.finish用法及代码示例
- Rust Debug用法及代码示例
- Rust DebugStruct用法及代码示例
- Rust DebugStruct.finish用法及代码示例
- Rust DebugMap.entries用法及代码示例
- Rust DebugSet.finish用法及代码示例
- Rust DebugMap.entry用法及代码示例
- Rust DebugMap.value用法及代码示例
- Rust DebugSet.entry用法及代码示例
- Rust DebugMap.finish用法及代码示例
- Rust DebugSet用法及代码示例
- Rust DebugTuple.field用法及代码示例
- Rust DebugTuple用法及代码示例
- Rust DebugList.finish用法及代码示例
- Rust DebugList.entry用法及代码示例
- Rust Deref用法及代码示例
- Rust DebugSet.entries用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait std::default::Default。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。