每次this program启动时,程序会在服务器重启后运行,此错误会显示:
startup:13:尝试调用nil
当我注释掉那行代码时,那之后的行发生了同样的事情。
直到所有这四行都是。 (round(math.floor)
行)
然后程序启动。
程序中需要四个变量,因此它们不会很好地与它们一起被注释掉。
如果我现在取消注释这些行,程序就会完美启动,一切正常。
我做错了什么原因?
答案 0 :(得分:3)
必须在调用函数之前定义函数(在第72行定义round
,但在第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