当前位置: 首页 > news >正文

第 9 章:泛型、Trait 与宏

第 9 章:泛型、Trait 与宏

第 9 章:泛型、Trait 与宏

9.1 泛型基础

泛型允许编写可重用代码。

fn largest<T: PartialOrd>(list: &[T]) -> &T {let mut largest = &list[0];for item in list.iter() {if item > largest {largest = item;}}largest
}
  • 使用 T 表示类型参数
  • PartialOrd 是类型约束

9.2 Trait 定义与实现

Trait 是行为抽象。

trait Summary {fn summarize(&self) -> String;
}struct NewsArticle {headline: String,
}impl Summary for NewsArticle {fn summarize(&self) -> String {format!("{}", self.headline)}
}
  • Trait 可以定义默认方法
  • 多个类型可以实现相同 Trait

9.3 常用标准 Trait

  • Display:用户友好输出
  • Debug:调试格式
  • Clone:显式复制
  • Into / From:类型转换
impl fmt::Display for Point {fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {write!(f, "({}, {})", self.x, self.y)}
}

9.4 宏基础

macro_rules!

macro_rules! create_function {($func_name:ident) => {fn $func_name() {println!("Function {:?} called", stringify!($func_name));}};
}create_function!(foo);
  • macro_rules! 用于定义声明宏
  • 宏是编译时代码生成工具

9.5 过程宏概念

过程宏可以生成更复杂代码,例如 derive 宏。

  • #[derive(Debug)]
  • #[derive(Serialize, Deserialize)]

9.6 练习

  • 为自定义结构体实现 Display
  • 编写一个泛型函数处理不同类型的集合
  • 创建一个简单宏,生成 getter 方法
http://www.jsqmd.com/news/785581/

相关文章:

  • KNN模型准确率低?数据标准化与中心化是关键
  • AtCoder Beginner Contest 457 ABCDE 题目解析
  • 坑道钻机核心技术解析与2025年优质厂家选购全攻略 - 品牌策略师
  • 基于Claude AI与MCP的智能体架构:自动化竞争情报分析实战
  • CANN/community安全设计指南
  • 老药丸闲置别乱处理,北京记录者商行专业上门回收,合规安心变现 - 品牌排行榜单
  • DriverStore Explorer完全指南:免费清理Windows驱动存储区,让电脑运行更流畅
  • CANN/cannbot-skills Ops EasyASC DSL 仓库地图
  • 成都螺纹钢经销商|专注西南建筑钢材一站式批发|获取盛世钢联免费钢筋报价 - 四川盛世钢联营销中心
  • NLP技术量化组织民主氛围:从文本数据到决策过程分析
  • 从‘28’到‘00’:手把手调试蓝桥杯按键扫描程序,避开长按短按的那些坑
  • 建造者模式,生成器模式
  • 第 6 章:集合与迭代
  • 质量好到出圈!2026广州聚杰芯科交调设备,监测精度远超行业标准 - 品牌速递
  • CANN驱动获取Flash信息API
  • CANN/ops-math 对角线张量算子
  • SD-WebUI-Inpaint-Anything:智能图像修复的终极指南
  • 集成机器学习在濒危语言文本分类中的应用:以霍拉米语为例
  • AI赋能边缘计算安全:从威胁检测到隐私保护的实战指南
  • AI 正在重塑泳装行业?今年春夏爆款早已换了玩法
  • 《QGIS空间数据处理与高级制图》001:什么是空间数据预处理?
  • 第 10 章:深入 Rust 生态与项目实践
  • 【2025最新】基于SpringBoot+Vue的抗疫物资管理系统管理系统源码+MyBatis+MySQL
  • 多模态大模型异构计算优化与部署实践
  • 如何scp不用密码
  • 2026成都半包装修公司前十强排名:口碑与工艺深度测评,谁更靠谱? - 推荐官
  • 大模型推理延迟骤降62%的现场实录(SITS 2024闭门技术白皮书首次解禁)
  • 成都钢管经销商|专注西南管材一站式批发|获取盛世钢联免费型钢价格 - 四川盛世钢联营销中心
  • 嵌入式开发避坑:海思Hi3536平台fw_printenv工具编译与移植保姆级教程(含Ubuntu18.04环境)
  • 基于扩散模型与激光雷达的风力机湍流入流场高保真重构技术