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
rust笔记7 rust中的包管理相关推荐
- 软件版本命名sig_LIUNX中程序包管理
LIUNX中程序包管理 此内容仅为笔记,这一两天给会重新整理补充上操作示例. 一.基础 1.程序描述: 第一种描述: 程序+数据 第二种描述: 算法+数据结构 2.程序的组成部分: 1.二进制程序 ...
- Windows中使用包管理器(类似于apt/yum的) - Chocolatey
Windows中使用包管理器 - Chocolatey简介 李俊才 的 CSDN 博客 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_2 ...
- Linux 中的包管理器是什么?它是如何工作的?
文章目录 1.Linux 中的包管理器是什么? 2.什么是包? 3.包管理器如何工作? 4.不同类型的包管理器 1.Linux 中的包管理器是什么? Linux 发行版之间的主要区别之一是包管理系统( ...
- golang中的包管理工具——govendor和godep简单学习
为什么用vendor目录 依赖问题 我们知道,一个工程稍大一点,通常会依赖各种各样的包.而Go使用统一的GOPATH管理依赖包,且每个包仅保留一个版本.而不同的依赖包由各自的版本工具独立管理,所以当所 ...
- Python中pip包管理工具的源配置文件pip.ini
当前环境为windows10时,安装了Python以后,在C:\Users\admin目录(当前用户)下创建pip文件夹,并在此文件夹下新建pip.ini文件: 在pip.ini文件中编辑下述内容: ...
- python中有很多包管理工具那中不是_Python中的包管理工具PIP,pip
1.1.4节 -- Python的包管理工具pip pip包 pip list(退出python环境后再输入) 列出匹配管理的包有哪些 pip install 包名 安装一个包(默认安 ...
- linux中程序包管理方式出现的原由(转载)
1.软件的安装卸载是很平常的事情,但是在linux上面却也这么的不简单.Linux的其中一个哲学思想就是 一个程序只做一件事,并且做好. 组合小程序来完成复杂任务.这样做有很多好处.但世界上的东西总是 ...
- node.js中npm包管理工具
现在安装node.js,默认就会帮我们装上了npm包管理工具,npm主要用来下载,安装,管理第三方模块. 创建一个包描述文件: npm init [-y] 查看包的信息 npm info <pa ...
- 【学习笔记】springBoot中获取sping管理的bean
文章目录 一.使用场景 二.springBoot中获取sping管理的bean 2.1 生成工具类SpringContextUtil 2.2 使用工具类SpringContextUtil 2.3 注意 ...
最新文章
- 分布式事务选型的取舍
- python一个try块后接一个或多个finally块_Python * with *语句是否完全等同于try-(例外)-finally块?...
- vscode中内置集成终端显示为git(bash.exe)
- python线程同步锁_Python实现的多线程同步与互斥锁功能示例
- 参考文献顺序不对_Endnote插入参考文献的保姆级教程
- numpy matlab 索引不同,与Numpy相似的MATLAB数组索引
- JQuery让input从disabled变成enabled
- Python List:合并多个list,listd的合并
- android profiler 简书,(四)Android 性能优化 Energy Profiler
- python读取压缩文件的指定后缀的文件_python打包压缩、读取指定目录下的指定类型文件...
- [Unity3D]脚本中Start()和Awake()的区别
- 通过QQ 2012 客户端协议获取clientkey的0x30数据包分析
- 《数据库应用》课程设计人事管理系统(java源代码)
- 分布式事务-LCN解决分布式事务
- 微信小程序踩坑指南--回填再造
- 【6.28校内test】T2 【音乐会】二重变革
- Nachos操作系统synch(lab3)
- Python matplotlib 饼图
- VTA(Versatile Tensor Accelerator)阅读笔记
- 解决:RuntimeError: CUDA error: device-side assert triggered