當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。