跳转到内容

Lua 的基本语法

变量类型

Lua 支持多种基本数据类型,如下表所示:

类型描述示例
nil表示无效或未初始化的值。当变量未被赋值时,其默认值为 nilnil
boolean表示布尔值,只能是 truefalsetrue, false
number表示数值,包括整数和浮点数。1, -5, 3.1415
string表示用单引号或双引号括起来的文本。"hello", 'Lua'
function表示函数,可以是内置函数或用户自定义函数。print, function add(a, b) return a + b end
table表示表,是 Lua 的主要数据结构。表用花括号 {} 定义,默认使用从 1 开始的索引。{1, 2, 3}

函数

函数定义

Lua 中定义函数的语法如下:

lua
function functionName(parameter)
    -- 函数体
end

示例:一个执行加法的函数

lua
function add(a, b)
    return a + b
end

函数调用

通过传递所需的参数可以调用函数:

lua
sum = add(3, 4)  -- `sum` 的值为 7

多返回值

Lua 中的函数可以返回多个值:

lua
function add(a, b)
    return a, b, (a + b)
end

x, y, z = add(3, 4)  -- x = 3, y = 4, z = 7

条件语句

if 语句

if 语句仅在给定条件为 true 时执行代码块:

lua
if condition then
    -- Code to execute if the condition is true
end

if..else 语句

如果条件为 false,则执行 else 块:

lua
if condition then
    -- 条件为 true 时执行的代码
else
    -- 条件为 false 时执行的代码
end

if..elseif..else 语句

对于多个条件,可以使用 elseif

lua
if condition1 then
    -- condition1 为 true 时执行的代码
elseif condition2 then
    -- condition2 为 true 时执行的代码
else
    -- 所有条件都为 false 时执行的代码
end

循环语句

while 循环

while 循环会在条件为 true 时重复执行代码块:

lua
while condition do
    -- 条件为 true 时执行的语句
end

for 循环

数值 for 循环

for 循环会遍历一系列数字,可指定步长:

lua
for variable = startValue, endValue, step do
    -- 循环体
end

示例:

lua
for i = 1, 5, 1 do
    print(i)
end

泛型 for 循环

泛型 for 循环通常用于遍历表:

lua
-- 遍历数组
numbers = {"one", "two", "three"}
for index, value in ipairs(numbers) do
    print(index, value)
end

说明:

  • index 表示表中的位置。
  • value 表示对应位置的元素。
  • ipairs() 是一个内置的迭代器函数,用于遍历数组。

repeat...until 循环

repeat...until 循环会至少执行一次代码块,并持续循环直到条件为 true

lua
repeat
    -- 至少执行一次的语句
until condition

示例:

lua
x = 1
repeat
    print(x)
    x = x + 1
until x > 5

参考资料