Rust学习笔记之非常好用的包管理器Cargo

包管理器

Rust 的 Cargo 应该算是众多包管理器当中非常好用的一个。如果接触过前端开发,对 npm/yarn 应该是不陌生的,Go 语言也有 go tool。这些包管理器用来下载正确的依赖库、编译和链接文件,还有管理项目等功能。

C++ 没有一个专用的包管理。C/C++ 一般用 GNU make 来构建项目。GNU make 是一个与语言无关的构建工具。GNU make 非常原始,既没有提供头文件的查找的功能,必须手动指明目录,也无法自动地进行依赖的下载。

幸运的是,Rust 的包管理器 Cargo 解决了这些问题,是一个非常好用的包管理工具。

模块(Modules)

任何 Rust 项目都有一个根模块。如果创建的是一个库,根模块就是 lib.rs 文件。如果是一个可执行的应用,那么根模块就是有 main 函数的文件。

嵌套模块

最简单的创建模块的方法就是 mod{}

// mod_within.rs

mod food {
   
  struct Cake;
  struct Smoothie;
  struct Pizza;
}

fn main() {
   
  let eatable = Cake;
}

如果这个时候进行编译,会发现报错了。
没有引入
Rust 真的这点上很赞,不单单是报错,连参考的解决方案都写好了。我们按照编译器提示的那样,增加一行代码。

// mod_within.rs

mod food {
   
  struct Cake;
  struct Smoothie;
  struct Pizza;
}

use food::Cake;

fn main() {
   
  let eatable = Cake;
}

再编译一下,结果发现…
私有

现在编译器说,Cake 是私有的。现在再修改一下代码,在 Cake 的声明前加上 pub

// mod_within.rs

mod food {
   
  pub struct Cake;
  struct Smoothie;
  struct Pizza;
}

use food::Cake;

fn main() {
   
  let eatable = Cake;
}

现在可以编译了。可以发现总共就两步,一步公开,一步引入。没有公开 pub,默认是私有的,外部是不能调用的。

文件模块

模块也可以是一个文件,把它放在与 mian.rs 同一文件夹下,然后在 main.rs 中引入该模块。我们创建一个文件夹,顺便创建两个文件。

控制台命令如下(用鼠标完成下面的工作也是一个不错的选择):

mkdir modules_demo 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值