CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
Lua基础迭代器pairs

迭代器:ipairs 与 pairs,以及为什么顺序会乱

2026-10-19 22:25 作者:996 技术组 Lua基础迭代器pairs

循环除了 for i=1,#t,还有迭代器。数组用 ipairs,字典用 pairs。

一、回顾 for 循环

lua
local t = {1, 2, 3, 4, 5}
for i = 1, #t do
    print(i, t[i], type(t[i]))
end

二、ipairs:只走数组

lua
for k, v in ipairs(t) do
    print(k, v)
end
  • k = 主键(隐式 1,2,3…)
  • v = 值
  • 遇到 nil 停
  • 有序、更快(连续内存)

数组里混了空洞时,ipairs 可能只打出前面几项。

三、pairs:全都能遍历

lua
for k, v in pairs(t) do
    print(k, v)
end
  • 能打出稀疏表、字符串主键
  • 顺序不保证
  • 字典只能靠 pairs

四、字典示例

lua
local t = { name = "张三", age = 18, sex = "男" }
for k, v in pairs(t) do
    print(k, v)
end

每次运行顺序可能不同:男/18/张三 会乱跳。

五、为什么 pairs 会乱?(堆)

  • 栈:小而快,放局部变量、参数、临时值(压栈/出栈)
  • 堆:大而慢,表放在堆里,格子散落

pairs 遍历堆时“谁离得近先取谁”,所以无序。
ipairs 按 1、2、3 连续走,所以有序且快。

能确定是数组 → ipairs;字典/不确定 → pairs。

六、类型检测

lua
print(type(123))      -- number
print(type("你好"))   -- string
print(type(nil))      -- nil
print(type(true))     -- boolean
print(type(function() end))  -- function
print(type({}))       -- table

今日练习:造含空洞数组,对比 ipairs 与 pairs;再用 pairs 遍历字典,运行三次看顺序。


作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

Lua基础迭代器

迭代器:ipairs 与 pairs,以及为什么顺序会乱

循环除了 for i=1, t ,还有 迭代器 。数组用 ipairs ,字典用 pairs 。 一、回顾 for 循环 二…

2026-10-19 22:25 996 技术组
Lua基础模块

模块与封装:把 QF 拆成工具箱

模块就是 工具箱 。后端命令八百多个,记不住很正常——把自己常用的封装起来,按名字调用。 一、include 与 requi…

2026-10-19 22:25 996 技术组
Lua实战NPC

NPC 界面与 GM 小工具:say / button / link 传参

会判断了,就能做会回话的 NPC。今天拼一个简易 GM 工具界面。 一、用 say 吐出界面 客户端编辑器 Ctrl + F…

2026-10-18 01:01 996 技术组
Lua基础逻辑运算

与或非:and / or / not 与短路真相

与或非听起来玄,其实就是三张通行证。 一、and(与)= 过安检 机票 + 身份证 ,少一样不让过。后面还能无限加条件。 二…

2026-10-18 01:01 996 技术组
Lua基础判断

判断分支实战:if / elseif / else 与防卫语句

判断 = 比较 + 分支。今天把三种 if 写法、以及工程里最好用的「防卫语句」一次练透。 一、三种判断结构 elseif …

2026-10-18 01:01 996 技术组
Lua基础Table

从表走到迭代:pairs/ipairs 预告与三大坑

表会建、会取、会增删改查,最后一环是 遍历 。本篇先把坑标出来,下节课正式拆迭代器。 本课互动训练 :专属动画 + 选择题测…

2026-10-18 00:25 996 技术组