new type 惯用法
比如说,实现一个 “年龄认证” 函数,它要求输入必须是 类型。
```rust, editable struct Years(i64);
impl Years { pub fn to_days(&self) -> Days { Days(self.0 * 365) } }
impl Days { /// 舍去不满一年的部分 pub fn to_years(&self) -> Years { Years(self.0 / 365) } }
fn main() { let age = Years(5); let age_days = age.to_days(); println!(“Old enough {}”, old_enough(&age)); println!(“Old enough {}”, old_enough(&age_days.to_years())); // println!(“Old enough {}”, old_enough(&age_days)); } old_enoughYears` 类型。