(转)Rust :文件分层

来源:互联网 发布:java的设计模式有哪些 编辑:程序博客网 时间:2024/06/15 12:34

转:https://rustwiki.org/rust-by-example/mod/split.html

模块可以分配到文件/目录的层次结构中。让我们将可见性小节例子 的代码拆开分到多个文件中:

$ tree .
.
|– my
| |– inaccessible.rs
| |– mod.rs
| -- nested.rs
– split.rs

1、 split.rs

// 此声明将会查找名为 `my.rs` 或 `my/mod.rs` 的文件,并将该文件的内容插入到// 此作用域名为 `my` 的模块里面。mod my;fn function() {    println!("called `function()`");}fn main() {    my::function();    function();    my::indirect_access();    my::nested::function();}

2、my/mod.rs

// 类似地,`mod inaccessible` 和 `mod nested` 将找到 `nested.rs` 和// `inaccessible.rs` 文件,并在它们各自的模块中插入它们的内容。mod inaccessible;pub mod nested;pub fn function() {    println!("called `my::function()`");}fn private_function() {    println!("called `my::private_function()`");}pub fn indirect_access() {    print!("called `my::indirect_access()`, that\n> ");    private_function();}

3、my/nested.rs

pub fn function() {    println!("called `my::nested::function()`");}#[allow(dead_code)]fn private_function() {    println!("called `my::nested::private_function()`");}// my/inaccessible.rs#[allow(dead_code)]pub fn public_function() {    println!("called `my::inaccessible::public_function()`");}

我们看到代码仍然正常运行,就和前面的一样:

$ rustc split.rs && ./splitcalled `my::function()`called `function()`called `my::indirect_access()`, that> called `my::private_function()`called `my::nested::function()`

此外,关于文件分层,可以阅读rustprimer,里面有详细的论述。

https://rustcc.gitbooks.io/rustprimer/content/module/module.html

0 0
原创粉丝点击