rust笔记7 rust中的包管理

rust相比于C++,一个优势在于有一个现代化的包管理系统,我们不用搞各种命令空间和依赖的问题。这里主要记录了一般文件打包的方式。

rust中声明包的关键字是mod,如果是公共的,则需要声明为pub mod

rust中,每个文件都是一个包,文件名就是包名。如果是和main.rs同级的文件,可以直接使用文件名作为包名。如果有多级目录,那么每个目录下,都要有一个mod.rs作为包的入口,这点类似于python的__init__.py文件;区别在于,rust的mod.rs文件中需要显式地说明当前目录下的包名,以及是否是pub类型的。

下面给出一个代码结构实例:

从里往外分析,每个文件的内容如下:
ak.rs

pub mod ak_47 {
    pub fn fire() {
        println!("AK-46 fire");
    }
}

mod.rs,这是long_gun的入口文件:

pub mod ak;   // 声明当前的包中有ak

my_gun.rs

pub fn my_gun1_fire() {
    println!("my_gun fire");
}

mod.rs,和my_gun.rs同级别的:

pub mod my_gun;
pub mod long_gun;

car.rs

pub mod ferrari {
    pub fn run() {
        println!("ferrari run");
    }
}

pub mod bmw {
    pub fn run() {
        println!("bmw run");
    }
}

main.rs,这是程序的入口,注意不同的引用方式:

mod car;
use car::bmw;
mod gun;
use car::ferrari as f;

fn main() {
    car::ferrari::run();
    f::run();
    bmw::run();
    gun::my_gun::my_gun1_fire();
    gun::long_gun::ak::ak_47::fire();
}

最后的输出结果是:

ferrari run
ferrari run
bmw run
my_gun fire
AK-46 fire
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值