类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → Lua类。
类型名必须写完整「Lua类」。声明时自动创建,一般无需再调 创建*。
硬约束
- 类型名必须写「Lua类」。官方 Lua 5.4,静态链入 exe(无外部
lua.dll)。 - 开放
base/table/string/math/utf8/coroutine;白名单require(先加载模块);无io/os/package。 - 无 Lua→Y++ 回调;宿主通过
置全局/置JSON/置字节集/调用/执行取回传参取结果。 - 方法调用必须带括号;脚本错误看返回值 /
取错误()/取栈()/取行号()。 - 长脚本用
R"lua(... )lua"(不是@"...")。 置指令上限/置超时防死循环;置只读目录后脚本可readfile(仅根下只读)。
快速开始
Lua类 L
L.置JSON("cfg", "{\"n\":3}")
文本 v = L.执行取回("return cfg.n * 2")
文本 t = L.调用("表函数", "[{\"a\":1},2]") // 嵌套 JSON → Lua table
L.执行取回("return 1,2,3")
文本[] arr = L.取返回数组()
Lua类/创建
创建Lua
- 签名:
Lua类 创建Lua() - 说明:显式创建引擎(一般写「Lua类 L」即可)。
Lua类/方法
执行
- 签名:
逻辑 执行(文本 脚本) - 说明:执行并丢弃返回值。
执行取回
- 签名:
文本 执行取回(文本 脚本) - 说明:执行并取回:标量友好文本,表→JSON,多返回值→JSON 数组。
加载 / 加载模块
逻辑 加载(文本 文件路径)— 读文件并执行逻辑 加载模块(文本 模块名, 文本 文件路径)— 登记后脚本可require("模块名")
置全局 / 置JSON / 置字节集 / 取全局 / 取JSON / 取字节集
置全局— 只写字符串置JSON— JSON→Lua 值(对象/数组→table)置字节集— 字节集→Lua 二进制 string取全局— 表自动变 JSON;逻辑→真/假取JSON— 强制 JSON(字符串带引号)取字节集— 全局 string→字节集
调用
文本 调用(文本 函数名, [文本 参数JSON])- 第二参为 JSON 数组,可嵌套对象/数组;多返回值打包为 JSON 数组
取返回 / 取返回数组 / 取输出 / 清空输出 / 取错误 / 取栈 / 取行号 / 重置
取返回()— 最近一次取回结果(多返回仍为 JSON 数组文本)取返回数组()— 多返回拆成文本[]取输出()/清空输出()— 脚本print缓冲取错误()/取栈()/取行号()— 失败诊断重置()— 重建引擎(保留已登记模块、指令上限、超时、只读根)
置指令上限 / 置超时 / 置只读目录
置指令上限(整数 上限)—0不限;超限则执行失败置超时(整数 毫秒)—0不限置只读目录(文本 路径)— 开启脚本readfile;路径须落在根下;""关闭
易错对照
| 错误 | 正确 |
|---|---|
| 类型写成 Lua | 必须「Lua类」 |
@"..." 长脚本 |
用 R"lua(... )lua" |
未登记就 require |
先 加载模块 |
| 期望脚本回调 Y++ | 不支持 |
未置只读目录就 readfile |
先 置只读目录 |