Lua Table(表)学习笔记

什么是Lua Table(表)

Lua中的Table(表)是一种非常灵活的数据结构,类似于其他编程语言中的关联数组或字典。它可以存储键值对,键和值可以是不同类型的数据,包括数字、字符串和其他类型。

如何创建Lua表

使用Lua表时,您可以将其作为变量分配给一个表达式的结果,也可以使用构造函数创建新表。

以下是创建并初始化一个新的空表的语法:

luaCopy Code
local myTable = {}

你可以在创建时初始化一个表:

luaCopy Code
local myTable = {"apple", "banana", "orange"}

Lua表中的键和值

表使用键值对进行存储。 在Lua表中,键和值可以是不同类型的数据。

以下是向表添加新项和更新现有项的示例:

luaCopy Code
local myTable = {} myTable["name"] = "John" myTable[1] = 20 myTable[2] = 30

此代码将“name”作为字符串键添加到表中,并将20和30作为数字键添加到表中。要访问表中的现有项目,请使用相应的键:

luaCopy Code
print(myTable["name"]) -- 输出 "John" print(myTable[1]) -- 输出 20

遍历Lua表

要遍历Lua表中的所有键和值,您可以使用pairs函数。 pairs函数返回表中的每个键和关联的值。 您可以使用此函数进行迭代,以访问表中的所有键和值:

luaCopy Code
local myTable = {key1 = "value1", key2 = "value2", key3 = "value3"} for key, value in pairs(myTable) do print(key .. " : " .. value) end

将输出以下内容:

Copy Code
key1 : value1 key2 : value2 key3 : value3

实例

下面是一个使用Lua表的示例。 employees表包含员工的姓名、电话号码和工资。 我们正在使用pairs函数打印所有的雇员信息。

luaCopy Code
local employees = { {name="John", phone="123456789", salary=50000}, {name="Jane", phone="987654321", salary=60000}, {name="Bob", phone="555555555", salary=40000} } for index, employee in pairs(employees) do print("Employee #" .. index) print("Name: " .. employee.name) print("Phone: " .. employee.phone) print("Salary: " .. employee.salary) end

输出:

Copy Code
Employee #1 Name: John Phone: 123456789 Salary: 50000 Employee #2 Name: Jane Phone: 987654321 Salary: 60000 Employee #3 Name: Bob Phone: 555555555 Salary: 40000