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
Другие вопросы по тегам