Lua 语言简介
什么是 Lua?
Lua 是一种轻量级、高效、可嵌入的脚本语言,由巴西里约热内卢天主教大学(PUC-Rio)于 1993 年开发。Lua 在葡萄牙语中意为”月亮”。
Lua 的设计目标是成为一个嵌入式语言,可以轻松地与 C/C++ 等宿主语言集成,为应用程序提供灵活的脚本扩展能力。
Lua 的主要特点
| 特点 | 说明 |
|---|---|
| 轻量级 | 完整解释器仅约 200KB,适合资源受限环境 |
| 高性能 | 在所有脚本语言中执行速度名列前茅(尤其 LuaJIT) |
| 可嵌入 | 提供简洁的 C API,可轻松嵌入 C/C++/Java/C# 等项目 |
| 跨平台 | 支持 Windows / macOS / Linux / iOS / Android / 嵌入式 |
| 简单易学 | 语法简洁直观,仅有 6 种基本类型,学习曲线平缓 |
| 高度可定制 | 元表机制允许修改语言行为,实现自定义 OOP 等范式 |
Lua 的应用场景
游戏开发
- World of Warcraft — 使用 Lua 编写 UI 和插件系统
- Roblox — Lua 作为全平台开发语言
- Love2D — 基于 Lua 的 2D 游戏引擎
- Cocos2d-x、Defold、Corona SDK 等引擎均使用 Lua 作为脚本语言
嵌入式/脚本扩展
- Redis — Lua 脚本实现原子性事务操作
- Nginx(OpenResty) — Lua 编写高性能 Web 应用
- Wireshark — 使用 Lua 编写协议解析插件
- Neovim — 使用 Lua 作为第一配置语言
- Adobe Lightroom — 使用 Lua 编写图片处理插件
- MySQL Proxy — Lua 编写数据库中间件逻辑
其他领域
- 嵌入式系统(如 NodeMCU / ESP32)
- 网络工具(nmap 的 NSE 脚本引擎)
- 高性能计算(Torch7 深度学习框架曾用 Lua)
Lua 与主要 Lua 发行版
| 发行版 | 特点 | 适用场景 |
|---|---|---|
| PUC-Lua(官方) | 标准 Lua,当前版本 5.4 | 通用开发,嵌入 C/C++ 项目 |
| LuaJIT | JIT 编译,速度提升 10-100 倍,兼容 5.1 | 高性能需求,游戏开发,OpenResty |
| Lua 5.1 | 兼容性最广的版本 | 很多现有项目的默认版本 |
建议:学习时使用官方 Lua 5.4,实际项目根据需求选择 LuaJIT 或 Lua 5.4。
本教程目标
通过本教程,你将能够:
- 在不同操作系统上安装和配置 Lua 开发环境
- 掌握 Lua 的基础语法和常用库
- 理解 Lua 的进阶特性(元表、协程、OOP 等)
- 将 Lua 嵌入 C/C++ 项目,实现多语言协作开发
- 使用 Lua 配置和扩展 Neovim 编辑器
- 使用 Lua + Love2D 进行游戏开发
教程目录
| 文件 | 内容 |
|---|---|
01-安装与环境配置.md | 各系统安装方法、编辑器选择、Hello World |
02-基础入门.md | 变量、类型、运算符、控制流、函数、表入门 |
03-进阶教程.md | 模块、元表、协程、IO、错误处理、OOP、调试、数据库 |
04-C与C++集成.md | Lua C API 详解,C/C++ 与 Lua 互调用实战 |
05-Neovim示例.md | 使用 Lua 配置 Neovim 的实战示例 |
06-Love2D示例.md | 使用 Lua + Love2D 引擎开发游戏入门 |
准备好了吗?让我们从环境搭建开始吧!