Lua: хранить неопределенное количество элементов в возвращаемом значении - PullRequest
3 голосов
/ 23 июля 2011
function foo()
  return "a", "b", "c"
end

function bar()
  return foo()
end

function process()
  -- ...
end

function bar_store()
  local v = foo()
  process()
  return v
end

print(bar())        -- A
print(bar_store())  -- B

Результат:

a   b   c           -- A
a                   -- B

Как я могу заставить B-версию вести себя как A-версия? В "bar_store" мне нужно вызвать функцию, которая может вернуть любое количество возвращаемых значений, но мне нужно проделать некоторую работу после вызова функции ("process" в моем примере)

1 Ответ

6 голосов
/ 23 июля 2011

ОК, отвечать на ваш собственный вопрос немного неубедительно, но:

function bar_store()
  local v = {foo()}
  process()
  return unpack(v)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...