Подтвердить что ты не робот

Как выйти из выполнения Lua script

Я хочу завершить выполнение Lua script при некотором условии. Пример:

content = get_content()
if not content then   
-- ( Here i want some kind of exit function )
next_content = get_content()
--example there can lot of further checks

Здесь я хочу, чтобы, если я не получаю контент, мой script предположим, что он завершен, не следует переходить к следующему.

4b9b3361

Ответ 1

извлечь из lua api doc:

Для синтаксических причин разрыв или возврат могут отображаться только как последний оператор блока (другими словами, как последнее утверждение в вашем куске или непосредственно перед концом, else или до). Например, в следующем примере break - это последний оператор блока then.

local i = 1
while a[i] do
  if a[i] == v then break end
  i = i + 1
end

Обычно это те места, где мы используем эти утверждения, потому что любое другое выражение, следующее за ними, недостижимо. Иногда, однако, может быть полезно написать возврат (или разрыв) в середине блока; например, если вы отлаживаете функцию и хотите избежать ее выполнения. В таких случаях вы можете использовать явный блок do вокруг оператора:

function foo ()
  return          --<< SYNTAX ERROR
  -- `return' is the last statement in the next block
  do return end   -- OK
  ...             -- statements not reached
end

Ответ 2

Используйте os.exit() или просто return из некоторой "основной" функции, если ваш script встроен.

Ответ 3

os.exit()

убить процесс, отправив сигнал

do return end

остановить выполнение

Два метода не равны, если вы хотите записать и выполнить некоторый luacode в интерпретаторе после остановки выполнения, запустив свою программу с помощью флага -i.

th -i main.lua

Ответ 4

В lua 5.2.0-beta-rc1 + вы можете добавить метку в конце вашего кода под названием ::exit:: или что-то подобное, а затем, когда вам нужно выйти из программы, просто вызовите ее так:

goto exit