Rust语言——Package、Crate、Module

本文介绍了Rust语言中的关键概念:Package、Crate和Module。Package是Cargo管理的构建、测试和分享crate的单位;Crate是一个模块树,可以生成库或可执行文件;Module用于组织代码并控制其可见性。通过`mod`关键字创建嵌套模块,并使用`pub`关键字公开元素。此外,`use`关键字用于导入和别名路径,`super`关键字则用于访问父级模块。Rust中默认的私有性原则以及如何公开结构体和枚举的详细规则也在文中阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Package(包):Cargo的特性,让你构建、测试、共享crate
  • Crate(单元包):一个模块树,可以产生一个library或可执行文件
  • Module(模块)、use:让你控制代码的组织

我们之前说的rand就是一个crate

一个Package可以有多个binary crate,但只能有0/1个library crate。

Module:

在一个crate内,将代码进行分组

控制项目的私有性:public、private

建立module:

-mod 关键字

-可嵌套

-可包含其他项(struct、enum、常量、函数等)的定义

mod front_of_house{//module
    mod hosting{//module下的子module
        fn add(){}
        fn seat(){}
    }
    mod serving{
        fn order(){}
        fn serve(){}
        fn payment(){}
    }
}
  • 路径

mod front_of_house{//module
    mod hosting{//module下的子module
        fn add(){}
    }
}
pub fn eat_at_rest(){//前面用pub修饰,该函数是公共函数,可以共享
    crate::front_of_house::hosting::add();//绝对路径调用函数
    front_of_house::hosting::add();//因为eat_at_rest()函数和front_of_house模块在同一级所以可以使用相对路径
}

 一般使用绝对路径保证两部分同时移动。

  • 私有边界

Rust中所有的条目(函数、方法、模块、常量等)默认是私有的 ,使用pub关键字可以使条目变为公共的。

-super关键字:访问父级模块路径中的内容

struct结构体前加pub,使得该结构体变成公共的,但是结构体中的变量并不是公共的,若想使其变量也是公共属性,需要在变量前也加上pub

在enum枚举前加pub修饰,不仅该枚举类型是公共属性,而且其中的变体也都是公共的

  • use关键字

 用来导入使用条目的路径

必须是公共(pub)的才能被导入

可以配合as使用,给引入的条目取一个别名,类似python中import...as...

use std::cmp::Ordering as abc;

pub use:可以使所导入的条目公共化,被外部所使用

使用外部包:

1.Cargo.toml添加依赖的包,比如:rand

2.use将特定条目引入作用域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值