对于复杂系统代码分层了,我看了很多开源项目,有些mod.rs纯粹是pub mod引入同级其他rs文件的,有些会定义一些struct结构体或者trait接口,同时引入其他文件,偶尔也会看到核心代码全写进mod.rs,没有其他同级rs文件。
大伙一般是咋写的,实践上是怎么考量的?
1
共 4 条评论, 1 页
对于复杂系统代码分层了,我看了很多开源项目,有些mod.rs纯粹是pub mod引入同级其他rs文件的,有些会定义一些struct结构体或者trait接口,同时引入其他文件,偶尔也会看到核心代码全写进mod.rs,没有其他同级rs文件。
大伙一般是咋写的,实践上是怎么考量的?
评论区
写评论主楼忘说了,其实很多项目也有不写mod.rs,不过知名项目一般基本都有mod.rs。但鉴于mod.rs本身的可有可无,我个人更倾向于里面除了导出什么都不写。
同意楼上说跟__init__.py差不多,mod.rs主要作用是把当前文件夹当成模块使用,假设文件夹somelib里有a.rs,b.rs两个文件,那么mod.rs的作用,就是把somelib当成一个模块,也可以控制a,b两个子模块的可见性(ps:rust里不写pub的话,是不可见的)你可以在其他文件里使用
use somelib;
使用它,具体请看文档https://doc.rust-lang.org/book/ch07-02-defining-modules-to-control-scope-and-privacy.html?highlight=mod#modules-cheat-sheet我也有这个疑惑,希望有人来回答回答。
基本上就写pub mod最多加几个test,跟python的__init__.py差不多,只不过在rust你要explicitly declare modules as public