You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需mod.rs,如何从Rust子目录导入函数?

Rust不使用mod.rs导入子目录模块的实现方案

要在不创建mod.rs、不移动文件的前提下导入src/others/utils.rs里的函数,你可以利用Rust 1.30及以上版本支持的目录同名.rs文件特性,替代传统的mod.rs来管理子目录模块,具体步骤如下:

步骤1:创建与子目录同名的rs文件

在项目的src目录下新建others.rs文件(文件名必须和子目录others完全一致),文件内容只需声明要导出的子模块:

pub mod utils;

步骤2:在main.rs中导入并使用函数

修改main.rs,先声明others模块(Rust会自动关联src/others.rs),再导入utils里的get_hello函数:

mod others;
use others::utils::get_hello;

fn main() {
    println!("{}", get_hello());
}

最终项目结构

你的项目目录结构应该是这样的:

src/
├── main.rs
├── others/
│   └── utils.rs
└── others.rs

原理说明

之前你直接写mod others;报错,是因为Rust默认会去src/others/下找mod.rs作为模块入口。现在用src/others.rs替代mod.rs,Rust会自动将这个文件视为others子目录的模块入口,从而可以直接声明并导出目录内的utils模块,完全符合你不使用mod.rs、不移动文件的要求。

内容的提问来源于stack exchange,提问作者Just_Another_Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:42:35