Lua - Computercraft -尝试调用nil,但有时能正常工作..?

每次这个程序启动时,在服务器重新启动后会出现此错误:

startup:13: attempt to call nil

当我注释掉那一行代码后,同样的事情会发生在那之后的那一行代码上,一直持续到那四行代码被注释掉。那么程序才能开始运行。

这四个变量在程序中是必需的,因此如果将它们注释掉,程序就无法正常运行。

如果我现在取消注释这些行,程序会完美地启动并且一切都正常工作。

有什么原因导致我错了吗?

点赞
用户415823
用户415823

在调用前必须先定义函数 (round被定义在第72行,但在第5行被调用)。你可以在定义之前声明一个函数:

function program()
    local round -- 前向声明
    while true do

        -- 调用下方的函数
        turbEnergy = round(math.floor(turbine.getEnergyStored())/100000,1)

        -- 函数定义
        function round(val, decimal)
        end
2015-04-14 16:31:55