rust-模块
33.模块(Modules)
我们常说 功能模块,就是用于将函数或结构体按照功能分组。也常常把相似的函数或者实现相同功能的或者共同实现一个功能的函数和结构体划分到一个模块中。
Rust 中的模块,类似 C++ 中的命名空间,Java 语言中的包。
在代码组织上,比模块更高级的是 crate ,一个crate 可以存放多个模块,在 Rust 语言中crate 是基本编译单元,分为 可执行二进制文件(包含 main 函数作为程序入口) 或者 一个库。
crates.io
是 Rust 官方提供的第三方包的地址。可以使用 cargo install
命令从 crates.io 上下载你所需要的 crate。
定义模块
1 | mod module_name { |
module_name 要是一个合法的名称。
Rust 语言中的模块默认是私有的。
如果一个模块或者模块内的函数需要导出为外部使用,则需要添加
pub
关键字。私有的模块不能为外部其它模块或程序所调用。
私有模块的所有函数都必须是私有的,而公开的模块,则即可以有公开的函数也可以有私有的函数。
1 | //公开的模块 |
use
关键字
1 | use 公开的模块名::函数名; |
在根目录下,执行 cargo new –lib mylib,创建类库。
1 | pub mod add_salary { |
Rust 允许一个模块中嵌套另一个模块,换种说法,就是允许多层级模块。
1 | pub mod mod1 { |
调用或使用嵌套模块的方法使用两个冒号 (::
) 从左到右拼接从外到内的模块即可
1 | use mod1::mod2::mod3::方法名; |
添加微信 | 公众号更多内容 |
---|---|
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!