首页 > 其他 > 详细

了解Rust(1) module系统

时间:2021-06-14 23:07:41      阅读:25      评论:0      收藏:0      [点我收藏+]

平级引用

Rust的module系统比较复杂繁琐不直观, 和常见语言的import方式差别很大. 我理解Cargo对Rust的module的处理更加类似于c/c++的include. 所有文件都要在crate的root文件(main.rs/lib.rs)显示引用. 然后其他文件才可以使用. 例子如下

├── Cargo.lock
├── Cargo.toml
├── src
│   ├── a.rs
│   ├── b.rs
│   └── main.rs


////////// main.rs
mod a; 
mod b; // 这里必须显示引入b. 即使在main.rs范围内看, b并没有被直接使用. 但是Cargo没有处理循环递归, Cargo编译只认crate root文件.

fn main() {
    println!("Hello, world!");
}


///////// a.rs
// mod b; // 这里不能类似main.rs文件那样引入b. 因为只有crate root文件可以这样做. 
use crate::b; // 绝对路径声明使用b. 因为main.rs已经引入了. 
    
pub fn testa(){
    b::testb();
}

///////////// b.rs
pub fn testb(){
    println!("b");
}

了解Rust(1) module系统

原文:https://www.cnblogs.com/shouzhuo/p/14883072.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!