Rust语言学习笔记(9)

模块

// 兄弟模块
mod network {
    fn connect() {
    }
}
mod client {
    fn connect() {
    }
}
// 父子模块
mod network {
    fn connect() {
    }
    mod client {
        fn connect() {
        }
    }
}
// 同一个文件
// src/lib.rs
mod client {
    fn connect() {
    }
}
mod network {
    fn connect() {
    }
    mod server {
        fn connect() {
        }
    }
}
// 两个文件
// src/lib.rs
mod client;
mod network {
    fn connect() {
    }
    mod server {
        fn connect() {
        }
    }
}
// client.rs
fn connect() {
}
// 三个文件
// src/lib.rs
mod client;
mod network;
// src/network.rs
fn connect() {
}
mod server {
    fn connect() {
    }
}
// 四个文件
// src/network/mod.rs
fn connect() {
}
mod server;
// src/network/server.rs
fn connect() {
}
  • 如果模块 foo 没有子模块,在 foo.rs 中放置该模块。
  • 如果模块 foo 有子模块,在 foo/mod.rs 中放置该模块。
  • 模块必须在其父模块的文件中使用 mod 声明。

可见性

// 二进制箱(binary crate)
// src/main.rs(根模块)
extern crate communicator;
fn main() {
    communicator::client::connect();
}
// 库箱(library crate)
// src/lib.rs(根模块)
pub mod client;
// src/client.rs
pub fn connect() {
}

猜你喜欢

转载自www.cnblogs.com/zwvista/p/12736344.html