< 返回版块

lithbitren 发表于 2024-07-17 22:13

Tags:mod

对于复杂系统代码分层了,我看了很多开源项目,有些mod.rs纯粹是pub mod引入同级其他rs文件的,有些会定义一些struct结构体或者trait接口,同时引入其他文件,偶尔也会看到核心代码全写进mod.rs,没有其他同级rs文件。

大伙一般是咋写的,实践上是怎么考量的?

评论区

写评论
作者 lithbitren 2024-07-18 22:59

主楼忘说了,其实很多项目也有不写mod.rs,不过知名项目一般基本都有mod.rs。但鉴于mod.rs本身的可有可无,我个人更倾向于里面除了导出什么都不写。

freedom967 2024-07-18 08:42

同意楼上说跟__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

1738352551 2024-07-17 23:36

我也有这个疑惑,希望有人来回答回答。

JackySu 2024-07-17 23:35

基本上就写pub mod最多加几个test,跟python的__init__.py差不多,只不过在rust你要explicitly declare modules as public

1 共 4 条评论, 1 页