You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
# 模块
|
|
|
|
|
|
|
|
|
|
> [ch07-00-modules.md](https://github.com/rust-lang/book/blob/master/src/ch07-00-modules.md)
|
|
|
|
|
> <br>
|
|
|
|
|
> commit e2a129961ae346f726f8b342455ec2255cdfed68
|
|
|
|
|
|
|
|
|
|
在你刚开始编写 Rust 程序时,代码可能仅仅位于`main`函数里。随着代码数量的增长,最终你会将功能移动到其他函数中,为了复用也为了更好的组织。通过将代码分隔成更小的块,每一个块代码自身就更易于理解。不过当你发现自己有太多的函数了该怎么办呢?Rust 有一个模块系统来处理编写可复用代码同时保持代码组织度的问题。
|
|
|
|
|
|
|
|
|
|
就跟你将代码行提取到一个函数中一样,也可以将函数(和其他类似结构体和枚举的代码)提取到不同模块中。**模块**(*module*)是一个包含函数或类型定义的命名空间,你可以选择这些定义是能(公有)还是不能(私有)在其模块外可见。这是一个模块如何工作的概括:
|
|
|
|
|
|
|
|
|
|
* 使用`mod`关键字声明模块
|
|
|
|
|
* 默认所有内容都是私有的(包括模块自身)。可以使用`pub`关键字将其变成公有并在其命名空间外可见。
|
|
|
|
|
* `use`关键字允许引入模块、或模块中的定义到作用域中以便于引用他们。
|
|
|
|
|
|
|
|
|
|
我们会逐一了解这每一部分并学习如何将他们结合在一起。
|