官术网_书友最值得收藏!

A module as a separate file

More often than not, we're going to want to give our modules their own files. It's just nicer to keep things separated and contained as much as possible, because it helps keep the code manageable. Fortunately, this is just as easy. In our .rs file, we can just write something like the following:

pub mod module_b;

That looks a lot like the previous example, except that it doesn't have the module contents right there between { and }. Instead, the Rust compiler goes looking for a file called either module_b.rs or module_b/mod.rs, and uses the whole file as the contents of the module_b module. So, if the file contains a couple of functions similar to the ones we saw previously:

pub fn a_thing() {
println!("This is a module_b thing");
}

pub fn a_second_thing() {
a_thing();
println!("This is another module_b thing");
}

Then module_b will contain two functions named a_thing and a_second_thing. It's not a problem that those functions have the same names as functions in the module_a module from before, because they're in a different module.

Why did the compiler look in two places for the source code of module_b? This allows us to be more flexible in how we lay out our directory structure for our program's source code.
主站蜘蛛池模板: 白朗县| 广河县| 仙游县| 柯坪县| 麻城市| 广南县| 黑山县| 南川市| 潮安县| 和政县| 抚顺市| 临潭县| 渝中区| 泽库县| 保靖县| 安丘市| 冷水江市| 凌海市| 台东县| 昌邑市| 六枝特区| 巧家县| 积石山| 绩溪县| 达州市| 山阳县| 永宁县| 咸阳市| 龙里县| 昌乐县| 康保县| 吉林省| 镇巴县| 新野县| 松原市| 红桥区| 翁牛特旗| 尚志市| 安新县| 永定县| 聂荣县|