模块系统¶
1. require 函数¶
LeonBasic 提供了 require() 函数用于导入内置库和自定义模块,实现代码的模块化和复用。
(1) 导入内置库¶
// 导入基础库
require("basic");
// 导入网络请求库
require("request");
// 导入时间处理库
require("time");
(2) 导入自定义模块¶
// 导入当前目录下的 utils.leon 模块
require("utils");
// 使用模块中的函数
var(result) = utils.add(int:5, int:3);
basic.print(string:"5 + 3 = " + string:var(result));
2. 模块查找路径¶
当使用 require(module_name) 时,系统会按以下顺序查找模块:
- 首先查找内置库(如 basic、request)
- 然后在当前脚本所在目录查找
module_name.leon文件 - 如果未找到,会在当前目录下的
lib子目录查找
3. 自定义模块创建¶
(1) 创建简单模块¶
创建一个名为 utils.leon 的文件:
// utils.leon
// 定义模块函数
func(add(a, b)) = {
return a + b;
};
func(multiply(a, b)) = {
return a * b;
};
func(greet(name)) = {
return "Hello, " + name + "!";
};
(2) 模块使用示例¶
// main.leon
require("basic");
require("utils");
// 使用 utils 模块中的函数
var(sum) = utils.add(int:5, int:3);
basic.print(string:"5 + 3 = " + string:var(sum));
var(product) = utils.multiply(int:7, int:4);
basic.print(string:"7 * 4 = " + string:var(product));
var(greeting) = utils.greet(string:"World");
basic.print(var(greeting));
4. 设置 require 路径¶
可以使用 basic.setrequirepath() 函数自定义模块查找路径:
require("basic");
// 设置自定义模块路径
basic.setrequirepath("D:\\Projects\\LeonBasic\\modules");
// 现在可以从自定义路径加载模块
require("custom_module");
5. 模块函数调用语法¶
使用导入的模块函数时,遵循以下语法:
// 模块名.函数名(参数...)
module_name.function_name(param1, param2, ...);
6. 模块加载注意事项¶
- 模块文件必须以
.leon为扩展名 - 一个模块可以被多次导入,但只会执行一次
- 模块中的变量和函数对导入者可见
- 模块之间可以相互导入,但要避免循环依赖