Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 62.9MB ·虚拟内存 1299.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
newtype 惯用法(译注:即为不同种类的数据分别定义新的类型)能保证在编译时,提供 给程序的都是正确的类型。
比如说,实现一个 “年龄认证” 函数,它要求输入必须是 Years 类型。
struct Years(i64); struct Days(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 old_enough(age: &Years) -> bool { age.0 >= 18 } 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_enough 的必须是 Years 类型。
“关联项”(associated item)指与多种类型的项有关的一组规则。它是 trait泛型的扩展,允许在 trait 内部定义新的项。一个这样的项就叫做一个关联类型。当 trait 对于实现了它的容器类型是泛型的,关 ...
全部【编程教程】内容源自网络,仅供学习用途,若有遗漏或版权任何问题,请及时【联系我们】 ,按下 Ctrl+D 或 ⌘+D 收藏本站。