问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Rust lib.rs 有什么用,看这一篇就够了

创作时间:
作者:
@小白创作中心

Rust lib.rs 有什么用,看这一篇就够了

引用
CSDN
1.
https://blog.csdn.net/vince1998/article/details/138371970

一、Rust lib.rs 文件有什么用

按文件描述,它就是一个库文件,整个package只能有一个,那实战中它到底有什么用?不要它行不行

lib.rs 文件通常用于定义的公共接口和模块结构

其实我认为,Rust对 文件和函数 的视角和Java、Golang不太一样,把(文件,函数)都看成一个个(模块,模块条目),按(模块、模块条目)来设置可见性,类似public还是private的效果。

那每一个模块和模块条目,能否被别的模块使用,我们就需要在lib.rs文件中进行定义引入,这样才,才,才可以使用引用的模块(文件)和模块条目(函数)。

二、实战

我们来实战一下,先以一个最简单的例子,

1、案例一

一个package里面有三个文件,分别为lib.rs,main.rs,main2.rs。

假设,我们新建的文件是main2.rs,里面我们写了新函数

我现在想在main.rs中,调用这个

eat_at_restaurant1

函数,此时我们什么都不干,直接回到main.rs去尝试调用。

可以发现,是无法导入这个main2模块的,或者说main.rs无法看到main2这个模块,那我们应该怎么办?

这个时候lib.rs的作用就来了,我们在lib.rs声明有main2.rs这个模块,还可以声明main2.rs是公开的(这样哪怕是不同级别的模块也是可见的)

我们看看lib.rs文件的内容

我们再回到main.rs中,看看能不能使用main2.rs中的函数

这样我们就可以使用main2.rs新创建的函数了

2、案例2

按照案例1来看,难道我每次新创建一个文件都要去lib.rs去mod一下吗,万一我创建了很多,或者是我在一个目录下创建了很多新文件每个文件下有很多新函数,难道我要一个个去mod吗?这太笨了吧?

假设是一个目录下,有很多新建的文件,我们可以在这个目录下,创建一个mod.rs文件,然后在mod.rs下,去声明,你需要公开该目录下的哪些模块,

举个例子,假设我有一个新目录front_of_house,目录下有两个新文件hostring.rs和serving.rs

!!!!!!!!!注意

两个新文件hostring.rs和serving.rs 我都想能被别的文件使用,那么我们需要这么做

(1)修改目录下mod.rs文件

(2)修改lib.rs文件

首先导入目录这个mod,mod名称和目录名称一样,那么这里就是front_of_house。

这样就相当于我们引入了目录front_of_house,在目录下front_of_house,我们通过mod.rs去声明了我们要公开目录下的什么模块。这样完成的引入声明就完成了

我们在main.rs试试效果

大功告成

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号