这篇文章将为大家详细讲解有关Rust模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文适用于刚开始学习rust的同学,用于帮助理解rust模块间是如何相互引用的。本文尽量用极少的代码来演示,即便之前没有了解过rust也可以混个眼熟。用的时候可以有个印象。如果你之前没有了解过rust,只需要知道:Cargo-依赖管理工具,类似于npm,Cargo 使用文件放置约定,即文件名就是模块名。crate-集装箱,是一组功能的封装,免费云主机域名类似于npm包。本文探讨的场景是在项目中对代码进行不同程度的文件拆分和模块抽离时,往往需要在一个文件中引入另一个模块的部分代码,在javascript中,我们可以通过导入导出来使用其他模块的代码,这个过程我们只需要关心导入路径是否正确。而在rust中,模块不再通过文件路径的方式引入,而是通过cargo以及约定的模块声明方式来构建模块树,然后通过use关键字来使用。但是rust的文档在文件拆分和模块使用上做的示例不太详细,于是就参考一些发布的crate的组织方式进行了梳理。假如我们想实现一个加法模块,并提供给其他地方使用。我们可以有如下三种组织方式Cargo 使用文件放置约定,因此模块查找以src目录下的rs文件或者目录为准,并且只会查找一级,嵌套文件夹下的rs文件不可以直接被其他文件使用。我们可以通过在src下添加模块名同名的文件,cargo就可以识别到add模块。如果模块是文件夹,则必须有mod.rs文件。这类似于javascript的index.js。cargo仍然可以识别到这是add模块假设我们的代码内容如下,并位于文件add.rs 或者add/mod.rs内那么在lib.rs中我们可以通过如下方式调用我们的add模块这种方式的目录结构看起来像下面这样add.rs负责入口模块的导入导出,add文件夹下则存放其余相关联的其他模块。这类似于javascript的index.js统一导出了多个其他模块。和上面不同的是这里 导入使用到了mod关键字来拆分模块;文件内容看起来像下面这样add.rsadd/add_m.rslib.rs上述三种方式使用较多的应该是前两种,并且在大型项目内第二种更为合理,可以更好的组织文件。那么当一个模块文件夹下拆分多个模块文件时该怎调用相邻文件呢?我们调整目录结构如下在add模块下多了print和user。user会调用print的方法。print.rsuser.rs同模块下的文件互相引用使用super关键字。mod.rs我们新增一个模块multip,返回两个数相乘的结果,目录结构如下multip/mod.rs假设add文件引入multip如此便可以使用另一个模块的内容了。当然其他模块的相互引用方式一致。关于“Rust模块怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
这篇“Java反射机制实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java反射机制实例分析”文章吧。Java的反射(reflectio…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。