Lua - Computercraft - 尝试调用 nil,但有时有效..?

Lua - Computercraft - attempt to call nil, but works sometimes..?

每次 this program 启动,程序 运行s 在服务器重新启动后出现此错误:

startup:13: attempt to call nil

当我注释掉那行代码时,同样的情况也发生在之后的那一行,再之后。

直到所有这四行。 (round(math.floor) 行) 然后程序启动。

程序中需要这四个变量,因此 运行 将它们注释掉后效果不佳。

如果我现在取消对这些行的注释,程序将完美启动并且一切正常。

我做错了什么原因?

函数必须在调用之前定义(round 在第 72 行定义,但在第 5 行调用)。您可以在定义函数之前声明它:

function program()
    local round -- forward declaration
    while true do

        -- call function defined below
        turbEnergy = round(math.floor(turbine.getEnergyStored())/100000,1) 

        -- function definition
        function round(val, decimal)                
        end