设计模式
使用构造器和默认构造器
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}}