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

一、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试试效果

请添加图片描述
大功告成

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值