在Lua中访问迭代器变量

Sim*_*aur 2 iteration lua for-loop

--main.lua

for o = 1, 5 do
  print(o)
  SampleFunction()
end
Run Code Online (Sandbox Code Playgroud)

--in B.lua

function SampleFunction()
  print(o)   --prints nil
end
Run Code Online (Sandbox Code Playgroud)

我有一个for循环,它迭代一个范围.在for循环中,我正在调用一个其他Lua文件中的函数,我需要在其他Lua文件中访问iterator变量,但它每次只打印NIL,我需要做什么?

hug*_*omg 5

有一个函数使用来自调用者的变量可能非常脆弱,所以它不是Lua支持的东西.如果你SampleFuncction从另一个没有o变量的地方打电话会怎么样?

我这样做的方法是SampleFunction接收循环索引作为参数

-- main.lua

for o = 1, 5 do
  print(o)
  SampleFunction(o)
end

--in B.lua

function SampleFunction(index)
    print(index)
end
Run Code Online (Sandbox Code Playgroud)