当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Default用法及代码示例


本文简要介绍rust语言中 Trait core::default::Default 的用法。

用法

pub trait Default: Sized {
    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-lang.org大神的英文原创作品 Trait core::default::Default。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。