Основная проблема Lua - оператор if, вложенный в цикл for - PullRequest
0 голосов
/ 19 сентября 2018

Я любитель в Lua, я написал этот код, но не смог скомпилировать, я проверил структуру синтаксиса и обнаружил, что это совпадение, поэтому я действительно не знаю, что не так, он говорит, что 18:'end' ожидается (закрыть), если 'в строке 16) возле' startFishing ', но зачем мне это делать ?????Кстати, startFishing - это еще одна функция, определенная ранее в том же файле.

function detectSuccess()
    local count = 0;
    for x = 448, 1140, 140 do
        color = getColor(x, 170);
        if color == 0xffffff then 
            return false
            startFishing()
        else
            return true
        end
    end
end

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Правильное форматирование кода у нас есть ....

function detectSuccess()
   local count = 0;
    for x = 448, 1140, 140 do
        color = getColor(x, 170);
        if color == 0xffffff then 
            return false
            startFishing()
        else
            return true
        end
    end
end

detectSuccess()

Оператор startFishing() болтается.Синтаксически единственное, что может прийти после возврата, это else или end.

Это жалоба от анализатора lua.

От lua: программирование на lua 4.4

По синтаксическим причинам, разрыв или возврат может появляться только как последний оператор блока (другими словами, как последний оператор в вашем чанке или непосредственно перед концом, else илидо).

Если вы хотите, чтобы startFishing был вызван, это должно быть до возврата.например,

function detectSuccess()
   local count = 0;
    for x = 448, 1140, 140 do
        color = getColor(x, 170);
        if color == 0xffffff then 
            startFishing() -- moved before the return
            return false
        else
            return true
        end
    end
end
0 голосов
/ 19 сентября 2018

Вы не можете иметь оператор в том же блоке после return.Я предполагаю, что вы имеете в виду это вместо этого:

if color == 0xffffff then 
   startFishing()
   return false
else
   return true
end

Отступ в коде поможет вам увидеть проблемы с синтаксисом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...