Import 是否有一种方法可以导入一个模块,但不知道它的目录而知道它的文件名?

Import 是否有一种方法可以导入一个模块,但不知道它的目录而知道它的文件名?,import,module,rust,Import,Module,Rust,我正在写一个用Rust玩AI的游戏。策略模块包括一个文件夹,其中包含处理特定情况的标准化模块。我希望能够创建一个新的模块,每当我想到一个新的情况,我想处理 我可以在Node中完成这项工作。例如,在MVC设置中,您可能有 ├── src ├── 控制器 ├── index.js └── ... ├── 模型 ├── index.js └── ... └── 意见 ├── index.js └── ... 使用包含以下内容的controllers/index.js文件 //////////////

我正在写一个用Rust玩AI的游戏。策略模块包括一个文件夹,其中包含处理特定情况的标准化模块。我希望能够创建一个新的模块,每当我想到一个新的情况,我想处理

我可以在Node中完成这项工作。例如,在MVC设置中,您可能有

├── src
├── 控制器
├── index.js
└── ...
├── 模型
├── index.js
└── ...
└── 意见
├── index.js
└── ...
使用包含以下内容的controllers/index.js文件

////////////////////////////////////////////////////////////////////////////////
//进口
////////////////////////////////////////////////////////////////////////////////
//模型
const models=require(“../models”);
//模块
常数fs=要求('fs');
const path=require('path');
////////////////////////////////////////////////////////////////////////////////
//模块
////////////////////////////////////////////////////////////////////////////////
常量控制器={};
const basename=path.basename(_文件名);
fs.readdirSync(uu dirname)
.filter(文件=>{
返回(file.indexOf('.')!==0)&&
(文件!==basename)&&
(file.slice(-3)='.js');
})
.forEach(文件=>{
控制器[file.slice(0,-3)]=需要(`./${file}`)(模型);
});

我可以在Rust中实现类似的功能吗?

不,无法在运行时导入模块;Rust是一种静态编译语言

您可以做的最接近的事情是编写枚举文件系统的语句,并生成适当的
mod
和/或
use
语句

require(`./${file}`)(模型)
Rust也没有导入的“默认导出”,因此这种模式不可能存在。您必须从模块中调用一个特定命名的函数

另见:


否,无法在运行时导入模块;Rust是一种静态编译语言

您可以做的最接近的事情是编写枚举文件系统的语句,并生成适当的
mod
和/或
use
语句

require(`./${file}`)(模型)
Rust也没有导入的“默认导出”,因此这种模式不可能存在。您必须从模块中调用一个特定命名的函数

另见:


然后我似乎需要一个索引文件,在其中手动导入每个脚本。当您添加数百个脚本时,这种设置会导致一些恼人的“gotchya”。有更好的模式吗?那么我似乎需要一个索引文件,在其中手动导入每个脚本。当您添加数百个脚本时,这种设置会导致一些恼人的“gotchya”。有更好的模式吗?