【Lua学习笔记】Lua进阶——Table,迭代器
发布人:shili8
发布时间:2025-03-12 07:28
阅读次数:0
**Lua学习笔记**
**Lua进阶——Table,迭代器**
---
### Table在 Lua 中,表(table)是最重要的数据结构之一。它可以看作是一个键值对的集合,可以存储各种类型的数据。
#### 创建表创建一个表非常简单,只需要使用 `{}` 来表示:
lualocal t = {a =1, b =2}
上面的代码创建了一个名为 `t` 的表,包含两个键值对:`a` 和 `b`。
#### 访问表元素访问表元素也非常简单,只需要使用 `table[key]` 来表示:
luaprint(t.a) -- 输出1
上面的代码输出 `t` 表中的 `a` 键的值。
#### 修改表元素修改表元素也很容易,只需要使用 `table[key] = value` 来表示:
luat.b =3print(t.b) -- 输出3
上面的代码修改了 `t` 表中的 `b` 键的值。
#### 删除表元素删除表元素可以使用 `table[key] = nil` 来表示:
luat.a = nilfor k, v in pairs(t) do print(k, v) end-- 输出:b3
上面的代码删除了 `t` 表中的 `a` 键。
#### 表长度表的长度可以使用 `#table` 来表示:
luaprint(#t) -- 输出1
上面的代码输出 `t` 表的长度。
#### 表排序表排序可以使用 `table.sort()` 来表示:
lualocal t = {a =3, b =2, c =1} table.sort(t) for k, v in pairs(t) do print(k, v) end-- 输出:c1 b2 a3
上面的代码对 `t` 表进行排序。
### 迭代器迭代器是一种特殊的函数,它可以让我们遍历一个集合中的所有元素。
#### 创建迭代器创建一个迭代器非常简单,只需要使用 `function()` 来表示:
lualocal function iter(t) local i =1 return function() if t[i] then i = i +1 return t[i -1] else return nil end endendlocal t = {a =1, b =2} for v in iter(t) do print(v) end-- 输出:12
上面的代码创建了一个迭代器函数 `iter()`,它可以遍历 `t` 表中的所有元素。
#### 使用迭代器使用迭代器非常简单,只需要使用 `for v in iter(t) do ... end` 来表示:
lualocal function iter(t) local i =1 return function() if t[i] then i = i +1 return t[i -1] else return nil end endendlocal t = {a =1, b =2} for v in iter(t) do print(v) end-- 输出:12
上面的代码使用迭代器函数 `iter()` 来遍历 `t` 表中的所有元素。
#### 关闭迭代器关闭迭代器可以使用 `return nil` 来表示:
lualocal function iter(t) local i =1 return function() if t[i] then i = i +1 return t[i -1] else return nil end endendlocal t = {a =1, b =2} for v in iter(t) do print(v) end-- 输出:12
上面的代码关闭迭代器函数 `iter()`。
---
以上就是关于 Lua 表和迭代器的学习笔记。希望这些内容能够帮助你更好地理解 Lua 的基本概念。