通用迴圈

迭代器使用一種稱為迴圈泛型for 迴圈

for 迴圈的通用形式使用三個引數:

  1. 在需要下一個值時呼叫的迭代器函式。它接收不變狀態和控制變數作為引數。返回 nil 訊號終止。
  2. 不變的狀態是,迭代期間不發生變化的值。它通常是迭代器的主題,例如表,字串或使用者資料。
  3. 控制變數代表用於迭代的初始值。

我們可以編寫一個 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