Lua 小白入门教程Lua 小白入门教程
首页
基础教程
实战进阶
编程指南
首页
基础教程
实战进阶
编程指南
  • 基础教程

    • 📚 基础教程
    • 第1章 - Lua 是什么?
    • 第2章 - 环境搭建
    • 第3章 - 变量与数据类型
    • 第4章 - 运算符与表达式
    • 第5章 - 流程控制
    • 第6章 - 函数
    • 第7章 - Table(表)
    • 第8章 - 字符串与模式匹配

第1章 - Lua 是什么?

嗨,朋友!我是长安。

今天我来跟你聊聊 Lua 这门语言。作为一个 Java 程序员,我第一次接触 Lua 的时候,真的被它惊艳到了——原来一门语言可以这么小巧、这么高效!

🤔 Lua 的前世今生

Lua(发音:卢阿,葡萄牙语中"月亮"的意思)诞生于 1993 年的巴西,由里约热内卢天主教大学的三位教授创造。

它的设计目标只有一个:轻量、可嵌入。

🌟 Lua 有多小?

来看一组数据:

对比项Java (JDK)Lua
安装包大小~150MB+~500KB
解释器大小JVM 很大~250KB
语法关键字50+ 个21 个
数据结构非常丰富1 个(Table)
启动速度较慢极快

没错,Lua 的整个解释器只有 250KB 左右,比一张图片还小!

🎯 Lua 的核心特点

1. 轻量级 ⚡

Lua 是世界上最轻量的脚本语言之一,整个源码只有 2 万多行 C 代码。

2. 可嵌入 🔌

Lua 天生就是为了嵌入其他程序而设计的。你可以把 Lua 嵌入到:

  • C/C++ 程序
  • Java 程序(通过 LuaJ)
  • Redis 服务器
  • Nginx 服务器(OpenResty)
  • 游戏引擎(Unity、Cocos2d 等)

3. 速度快 🚀

Lua 的运行速度在脚本语言中名列前茅,LuaJIT 甚至可以接近 C 语言的速度。

4. 简单易学 📖

只有 21 个关键字,语法简洁明了,Java 程序员一两天就能上手。

📊 Java vs Lua 核心对比

特性JavaLua
类型系统静态类型动态类型
编译方式编译为字节码解释执行 / JIT
运行环境JVMLua 解释器
面向对象类为基础基于 Table 和元表
内存管理GCGC
并发模型多线程协程
包管理Maven/GradleLuaRocks
应用场景企业级应用嵌入式脚本

💡 Java 程序员学 Lua 的优势

作为 Java 程序员,你已经有了很好的编程基础,学 Lua 会非常快:

  1. 变量、函数、循环 — 概念完全一样,只是语法不同
  2. 面向对象 — Lua 用 Table 实现,思想和 Java 类似
  3. GC 机制 — Lua 也有垃圾回收,你不用手动管理内存

注意

Lua 和 Java 最大的区别是:Lua 是动态类型语言。变量不需要声明类型,一个变量可以随时改变类型。对于习惯了强类型的 Java 程序员来说,这是需要适应的地方。

🚀 一个快速对比

Java 版 Hello World:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Lua 版 Hello World:

print("Hello, World!")

就一行!是不是很简洁?😄

📝 小结

  • Lua 是一门轻量级、可嵌入的脚本语言
  • 它只有 21 个关键字,非常容易学习
  • Java 程序员学 Lua 有天然优势,核心概念都是相通的
  • Lua 在 Redis 脚本、规则引擎、游戏开发、高性能网关 等场景广泛应用

➡️ 下一步

准备好了吗?下一章我们来 搭建 Lua 开发环境,5 分钟就能写出你的第一个 Lua 程序!

💪 练习题

  1. Lua 诞生于哪一年?它的名字是什么意思?
  2. Lua 有多少个关键字?
  3. 列举 3 个 Lua 的典型应用场景。
  4. Java 和 Lua 在类型系统上最大的区别是什么?

答案提示

  1. 1993 年,葡萄牙语中"月亮"的意思
  2. 21 个关键字
  3. Redis 脚本、游戏脚本、OpenResty 网关(答案不唯一)
  4. Java 是静态类型,Lua 是动态类型
最近更新: 2026/2/27 17:54
Contributors: 王长安
Prev
📚 基础教程
Next
第2章 - 环境搭建