关于rust:rust学习定义模块modules用以控制范围和隐私

5次阅读

共计 705 个字符,预计需要花费 2 分钟才能阅读完成。

模块使咱们能够将板条箱中的代码分为几组,以进步可读性和重用性。模块还管制我的项目的隐衷,即我的项目是能够由内部代码应用(公共)还是外部实现细节而不能用于内部应用(公有)。

举例来说,让咱们写一个提供餐厅性能的图书馆箱子。咱们将定义性能的签名,但将其主体留空以专一于代码的组织,而不是理论在代码中实现餐厅。

在餐饮业中,餐厅的某些局部称为屋宇前部,而其余局部称为屋宇后部。屋前就是顾客的所在。主机在这里款待客户,服务器在承受订单和付款,调酒师在这里喝酒。屋后是厨师在厨房工作,洗碗碟机,经理进行行政工作的中央。

首先来创立一个名为 lib.rs 的文件(能够通过命令:cargo new --lib restaurant 来创立),并编辑内容:

mod front_of_house {
    mod hosting {fn add_to_waitlist() {}

        fn seat_at_table() {}
    }

    mod serving {fn take_order() {}

        fn serve_order() {}

        fn take_payment() {}
    }
}

fn main() {}

咱们以 mod 关键字结尾定义模块,而后指定模块名称(在本例中为 front_of_house),并在模块主体四周搁置花括号。在模块外部,咱们能够有其余模块,在这种状况下,这些模块能够托管和服务。模块还能够保留其余我的项目的定义,例如构造,枚举,常量,特色或者办法。

通过应用模块,咱们能够将相干的定义分组在一起,并命名它们为什么相干。应用此代码的程序员能够更轻松地找到他们想要应用的定义,因为他们能够基于组导航代码,而不用浏览所有定义。向此代码增加新性能的程序员将晓得将代码搁置在何处以放弃程序的组织性。

正文完
 0