Lua有人能解释一下这是做什么的吗?

时间:2015-11-02 11:57:11

标签: lua

我正在学习lua,任何人都可以解释这一小段代码是如何工作的吗?

table = {1, 2, 3, 4, 5}

function num(table, start)
  table = start

  return function()
    i = i + 1
    if table[i - 1] then
      return i - 1,[table - 1]
    else
      return nil
  end
end

for k,v in ipairs(table) do
  print(k,v)
end

1 个答案:

答案 0 :(得分:0)

看起来代码导致了自定义迭代器功能。但它没有完成,这是我最好的猜测它应该是什么样的

tab = {1, 2, 3, 4, 5}

function num(tab, start)
  local i = start or 1
  return function()
    i = i + 1
    if tab[i - 1] then
      return i - 1,tab[i - 1]
    else
      return nil
    end
  end
end

for k,v in ipairs(tab) do
  print(k,v)
end

for k,v in num(tab) do
  print(k,v)
end

这段代码的作用是首先循环选项卡并打印键值对。接下来,它使用一个迭代器,它在它之前打印键值对。

迭代器继续返回,直到它返回nil。然后for循环结束。