引言

在上一章中,我们在一个孤立的环境中对 Ticket 进行了建模:我们定义了其字段及其约束,学习了如何用 Rust 最好地表示它们,但我们并未考虑 Ticket 如何融入更大的系统中。本章将围绕 Ticket 构建一个简单的工作流程,引入一个基本的管理系统来存储和检索票据。

此任务将为我们提供探索 Rust 新概念的机会,包括:

  • 堆分配的数组
  • Vec,一种可增长的数组类型,以及切片
  • IteratorIntoIterator,用于遍历集合
  • 切片(&[T]),用于操作集合的部分
  • 生命周期,描述引用的有效期
  • HashMapBTreeMap,两种键值数据结构
  • EqHash,用于在 HashMap 中比较键
  • OrdPartialOrd,用于操作 BTreeMap
  • IndexIndexMut,用于访问集合中的元素