rust多个mod文件引用和文件夹mod使用注意事项小结
作者:1024小神
rust多个mod文件引用和文件夹mod使用注意事项
如果mod文件都在同一级目录,则直接使用就可以,因为rust文件都是一个隐藏的mod,但是如果mod文件在另外一个目录下面,就需要在目录下面声明一个mod.rs文件,这样才能将那个目录识别为一个mod,可以在mod.rs里面使用pub mod 暴露该目录下面的mod,从而让别的文件引入使用。
比如这里有一个request.rs文件:
// 每一个rust文件都是一个隐藏的module pub fn get_info() { println!("获取用户信息") }
想要在main.rs中使用的话,直接引入即可:
但是如果我定义了一个utils文件夹,想导出utils里面的mod,就需要在utils下面声明一个mod.rs文件:并导出想要导出的mod文件
然后在main.rs里面就可以识别到utils了:
补充:
5分钟看明白rust mod use
rust把mod简单的事没说清,一片混乱,似懂非懂.
mod语句查找只有一条规则:先找mod名1.rs,没有就我同名文件夹下的mod名1.rs,如果没有,就同名文件夹下的mod名1/mod.rs,再没有就error.
在mod.rs中,pub mod 文件名1或文件夹名1/2,可以无限递归,当然没必要。
直到找到 模块.rs.
如果模块.rs中仅声明,没定义,又要无限递归,当然也没必要。
假设不玩递归了,直到模块z.rs中有定义了,得是pub mod …{…}.
而调用的.rs中得:mod mod名1;use mod名1::文件夹2…n::文件名z::mod名;
如果同名 ,即:模块名文件夹::(模块名.rs文件本身的)模块名::(文件模块名.rs中的pub mod )模块名::(函数)模块名,一共连续4个路径。
使用时:mod名::函数名或直接函数名(不建议,尤其大程序,容易混淆)。
这种文件夹必须用mod.rs联结文件夹与文件名.rs,并且必经我的同名文件夹下查找要调用的mod的方式,是一种文件路径与mod混用方式,画蛇添足。为了装逼的递归?还是适应不同的文件系统?
到此这篇关于rust多个mod文件引用和文件夹mod使用注意事项的文章就介绍到这了,更多相关rust多个mod文件引用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!