GitHub

设计模式

使用构造器和默认构造器

Description

Rust中,通常使用一个关联函数new来创建一个对象,通过Default trait来支持默认构造器。

Example

pub struct Second {
value: u64
}
impl Second {
// Constructs a new instance of [`Second`].
// Note this is an associated function - no self.
pub fn new(value: u64) -> Self {
Self { value }
}
/// Returns the value in seconds.
pub fn value(&self) -> u64 {
self.value
}
}

如果是默认构造器,那么需要为结构体Second实现Default

pub struct Second {
value: u64
}
impl Second {
/// Returns the value in seconds.
pub fn value(&self) -> u64 {
self.value
}
}
impl Default for Second {
fn default() -> Self {
Self { value: 0 }
}
}

Using #[derive(Default)] Macro

如果所有类型的所有字段都实现了Default,也可以派生出Default,就像对Second那样:

#[derive(Default)]
pub struct Second {
value: u64
}
impl Second {
/// Returns the value in seconds.
pub fn value(&self) -> u64 {
self.value
}
}
上一篇
使用`format!`串联字符串