在线运行 Lua

浏览器内置真正的 Lua 5.4 解释器,常用于游戏脚本、嵌入式扩展与配置

就绪

代码

运行结果


        

这是什么?

这是一个真正的 Lua 5.4 解释器,由官方 Lua 源码编译成 WebAssembly 后在你浏览器中运行。Lua 体积很小(引擎仅约 424KB),却是游戏行业使用最广的脚本语言 —— 魔兽世界插件、Roblox、Redis 脚本、Nginx/OpenResty 配置都用它。

怎么用?

  1. 在左边写代码,或从右上角「加载示例」挑一个例子;
  2. 用 print() 输出,结果显示在右侧;
  3. 点「运行」或按 Ctrl+Enter。

支持能力对照

能力是否支持说明
Lua 5.4 完整语法支持表、元表、闭包、协程、goto 等
标准库支持string、table、math、os(时间相关)、io.write
print 输出支持多个参数之间用制表符分隔,与官方解释器一致
unicode / utf8 库支持Lua 5.4 自带 utf8 库
文件读写不支持浏览器沙箱内没有真实文件系统
require 加载模块不支持单文件运行环境
读取标准输入不支持io.read 在浏览器环境中不可用
长时间运行限 10 秒超时自动终止,死循环不会卡住页面

常见问题

为什么 fruits[0] 是 nil?

Lua 的数组索引从 1 开始,不是从 0。这是 Lua 与绝大多数语言最大的 区别,也是新手最常踩的坑。fruits[0] 不会报错,只会安静地返回 nil。

字符串为什么不能用 + 连接?

Lua 用 ..(两个点)做字符串连接,用 + 会报 "attempt to perform arithmetic on a string value"。同样地,不等于用 ~= 而不是 !=。

ipairs 和 pairs 有什么区别?

ipairs 按整数索引 1、2、3… 顺序遍历,遇到 nil 就停,适合数组; pairs 遍历所有键值对,顺序不保证,适合字典。遍历数组用 ipairs。

代码会被上传吗?

不会。Lua 解释器下载到你的浏览器后本地执行,代码从未离开你的设备。

相关工具

Python 在线运行 · JavaScript 在线运行 · 全部代码运行工具