通用循环
for
循环的通用形式使用三个参数:
- 在需要下一个值时调用的迭代器函数。它接收不变状态和控制变量作为参数。返回
nil
信号终止。 - 在不变的状态是,迭代期间不发生变化的值。它通常是迭代器的主题,例如表,字符串或用户数据。
- 的控制变量代表用于迭代的初始值。
我们可以编写一个 for
循环来使用下一个函数迭代表中的所有键值对。
local t = {a=1, b=2, c=3, d=4, e=5}
-- next is the iterator function
-- t is the invariant state
-- nil is the control variable (calling next with a nil gets the first key)
for key, value in next, t, nil do
-- key is the new value for the control variable
print(key, value)
-- Lua calls: next(t, key)
end