这些任务描述了编写设计良好且符合惯用风格的 🏠 Rust 代码所必需的一些常用惯用法。
❗️在完成本任务之前,你应该先完成它的所有子任务。
完成这些任务之后,你应该能够回答以下问题:
- 为什么我要关注类型以及用类型来表达事物?类型如何帮助提升程序正确性的保证?
- 编写设计良好且符合人体工学的 🏠 Rust API 的关键是什么?为什么?
mem::replace为什么会存在?它解决了什么目的?在何时、为什么它真的很有用?- 输入类型多态在 🏠 Rust API 中通常是怎样组织的?它有什么代价?
- 在 🏠 Rust 中有哪些为源代码做前瞻性保护的方式和工具?
若想更熟悉编写符合惯用风格的 🏠 Rust 代码,请阅读以下文章:
- 🧭 Rust 书:测试组织⏱0.25h
- 🎥 与 Rust 一起玩转常量函数(const fn)⏱0.75h
预计耗时:2 天
设计并实现一个 VendingMachine 类型,它的行为类似一台 📰 自动售货机:
Product应该有价格和名称;VendingMachine应该有有限的Product容量;VendingMachine应该能够找零;- 如果无法找零,
VendingMachine应该拒绝购买; Coin的面值只能是1、2、5、10、20和50。
尽量让它的使用 API 尽可能方便。