Lua - Computercraft - попытка вызвать ноль, но иногда работает..?
Каждый раз при запуске этой программы, программа запускается после перезапуска сервера, появляется эта ошибка:
запуск:13: попытка вызвать ноль
Когда я закомментирую эту строку кода, то же самое происходит со строкой после этого и после этого.
Пока все эти четыре строки. (round(math.floor)
линии) Затем программа запускается.
Четыре переменные необходимы в программе, поэтому они не будут хорошо работать с закомментированными ими.
Если я сейчас раскомментирую эти строки, программа запускается отлично, и все работает.
Любая причина, что я делаю не так?
1 ответ
Решение
Функции должны быть определены до их вызова (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