hijulien 发表于 2024-12-02 22:33
刚接触Rust,项目中各个模块和文件夹下面都有一个mos.rs,个人觉得有点麻烦,感觉不如其他编程语言直接从文件引入public资源
感谢答复
-- 👇 c5soft: 不单独建立模块文件夹就不需要mod.rs,直接在lib.rs/main.rs中申明模块文件就可以了。
//main.rs mod a; use a::something; fn main() { something(); } // a.rs pub fn something() { println!("This is mod a"); }
-- 👇 SleepyBoy: 直接从文件引入pub资源可以,但是项目文件繁杂之后,没办法进行分层管理,只能介入目录结构。
那路径导入就有多种设计选择了:
一种是目录下的文件定义了public资源就可以任意导入(像Java9发布模块功能之前的),优点是简单直接,缺点是没法精细控制权限
rust选择的是纯模块化设计,目录也视为一个模块,其标准化文件就是mod.rs,在这里面可以灵活控制允许导出模块外的访问权限,同时又不影响其子模块之间的权限访问,不会出现顶层模块没有开放权限的情况下,外部直接穿透访问子模块的某个pub资源。
嵌套mod本身符合树形结构,嵌套mod可以塞到一个“压缩”文件里面,同时也可以展开到目录结构上,由于“目录”这个文件的特殊性,才需要一个标准文件mod.rs
直接从文件引入pub资源可以,但是项目文件繁杂之后,没办法进行分层管理,只能介入目录结构。
不单独建立模块文件夹就不需要mod.rs,直接在lib.rs/main.rs中申明模块文件就可以了。
评论区
写评论感谢答复
--
👇
c5soft: 不单独建立模块文件夹就不需要mod.rs,直接在lib.rs/main.rs中申明模块文件就可以了。
感谢答复
--
👇
c5soft: 不单独建立模块文件夹就不需要mod.rs,直接在lib.rs/main.rs中申明模块文件就可以了。
感谢答复
--
👇
SleepyBoy: 直接从文件引入pub资源可以,但是项目文件繁杂之后,没办法进行分层管理,只能介入目录结构。
那路径导入就有多种设计选择了:
一种是目录下的文件定义了public资源就可以任意导入(像Java9发布模块功能之前的),优点是简单直接,缺点是没法精细控制权限
rust选择的是纯模块化设计,目录也视为一个模块,其标准化文件就是mod.rs,在这里面可以灵活控制允许导出模块外的访问权限,同时又不影响其子模块之间的权限访问,不会出现顶层模块没有开放权限的情况下,外部直接穿透访问子模块的某个pub资源。
嵌套mod本身符合树形结构,嵌套mod可以塞到一个“压缩”文件里面,同时也可以展开到目录结构上,由于“目录”这个文件的特殊性,才需要一个标准文件mod.rs
直接从文件引入pub资源可以,但是项目文件繁杂之后,没办法进行分层管理,只能介入目录结构。
那路径导入就有多种设计选择了:
一种是目录下的文件定义了public资源就可以任意导入(像Java9发布模块功能之前的),优点是简单直接,缺点是没法精细控制权限
rust选择的是纯模块化设计,目录也视为一个模块,其标准化文件就是mod.rs,在这里面可以灵活控制允许导出模块外的访问权限,同时又不影响其子模块之间的权限访问,不会出现顶层模块没有开放权限的情况下,外部直接穿透访问子模块的某个pub资源。
嵌套mod本身符合树形结构,嵌套mod可以塞到一个“压缩”文件里面,同时也可以展开到目录结构上,由于“目录”这个文件的特殊性,才需要一个标准文件mod.rs
不单独建立模块文件夹就不需要mod.rs,直接在lib.rs/main.rs中申明模块文件就可以了。