本教程基于 basics.lua 文件,详细介绍 Lua 编程语言的基础语法知识。
目录
1. 变量声明和赋值
全局变量
在 Lua 中,不使用 local 关键字声明的变量是全局变量。
1 | -- 全局变量 |
局部变量
使用 local 关键字声明的变量是局部变量,其作用域仅限于声明它的块。
1 | -- 局部变量 |
多重赋值
Lua 支持同时给多个变量赋值。
1 | -- 多重赋值 |
交换变量值
利用多重赋值的特性,可以方便地交换变量值。
1 | -- 交换变量值 |
额外示例:变量的默认值
当赋值表达式的数量少于变量数量时,多余的变量会被赋予 nil 值。
1 | -- 变量的默认值 |
2. 数据类型
Lua 是一种动态类型语言,共有 8 种基本数据类型:nil、boolean、number、string、table、function、userdata 和 thread。
nil 类型
nil 是一个特殊的值,表示”无”或”不存在”。
1 | -- nil类型 |
boolean 类型
布尔类型只有两个值:true 和 false。
1 | -- boolean类型 |
number 类型
Lua 中只有一种数值类型,用于表示整数和浮点数。
1 | -- number类型(Lua中只有一种数值类型) |
string 类型
字符串是由零个或多个字符组成的序列,可以用单引号、双引号或长字符串语法([[...]])表示。
1 | -- string类型 |
table 类型
表是 Lua 中唯一的复合数据类型,可以用来表示数组、字典等数据结构。
1 | -- table类型(Lua中唯一的复合数据类型) |
function 类型
函数是 Lua 中的第一类值,可以存储在变量中、作为参数传递或作为返回值。
1 | -- function类型 |
userdata 和 thread 类型
- userdata:用于表示由 C 语言创建的自定义类型。
- thread:用于表示协程(coroutine)。
3. 条件语句
Lua 提供了 if、elseif 和 else 语句来实现条件判断。
if-else 语句
1 | -- if-else语句 |
额外示例:嵌套的条件语句
1 | -- 嵌套的条件语句 |
4. 循环结构
Lua 提供了三种循环结构:for、while 和 repeat-until。
for 循环(数值型)
用于执行固定次数的循环。
1 | -- for循环(数值型) |
for 循环(带步长)
可以指定循环的步长。
1 | -- for循环(带步长) |
while 循环
在条件为真时重复执行循环体。
1 | -- while循环 |
repeat-until 循环
至少执行一次循环体,然后在条件为真时停止。
1 | -- repeat-until循环(至少执行一次) |
额外示例:泛型 for 循环
用于遍历表中的元素。
1 | -- 泛型for循环遍历表 |
5. 运算符
算术运算符
1 | -- 算术运算符 |
关系运算符
1 | -- 关系运算符 |
逻辑运算符
1 | -- 逻辑运算符 |
字符串连接运算符
1 | -- 字符串连接运算符 |
额外示例:运算符优先级
Lua 中的运算符优先级从高到低依次为:
- ^
- 一元运算符(not, #, -)
- *, /, %
- +, -
- ..
- <, >, <=, >=, ~=, ==
- and
- or
1 | -- 运算符优先级示例 |
运行示例
要运行 basics.lua 文件,只需在命令行中执行:
1 | lua basics.lua |
运行结果将显示各个部分的输出,包括变量值、数据类型信息、条件判断结果、循环执行过程和运算符计算结果。
总结
本教程介绍了 Lua 编程语言的基础语法,包括:
- 变量声明和赋值
- 数据类型
- 条件语句
- 循环结构
- 运算符
通过学习这些基础知识,您已经为进一步学习 Lua 的高级特性(如函数闭包、表操作、模块系统等)打下了坚实的基础。
basics.lua
1 | -- Lua基础语法示例 |