当前位置:实例文章 » 其他实例» [文章]【Lua学习笔记】Lua进阶——Table,迭代器

【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 的基本概念。

其他信息

其他资源

Top