模块 让我们可以将一个 crate 中的代码进行分组,以提高可读性与重用性。模块还可以控制项的 私有性,即项是可以被外部代码使用的(public),还是作为一个内部实现的内容,不能被外部代码使用(private)。

    1. mod front_of_house {
    2. mod hosting {
    3. fn add_to_waitlist() {}
    4. fn seat_at_table() {}
    5. }
    6. mod serving {
    7. fn take_order() {}
    8. fn serve_order() {}
    9. fn take_payment() {}
    10. }
    11. }
    1. crate
    2. └── front_of_house
    3. ├── hosting
    4. ├── add_to_waitlist
    5. └── seat_at_table
    6. └── serving
    7. ├── take_order
    8. ├── serve_order
    9. └── take_payment

    兄弟(siblings)模块:hostingserving模块
    嵌套模块:hosting嵌套在 front_of_house