Lua:存储未指定数量的项目的返回值

时间:2011-07-23 16:18:10

标签: lua

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 个答案:

答案 0 :(得分:6)

好的,回答你自己的问题有点蹩脚,但是:

function bar_store()
  local v = {foo()}
  process()
  return unpack(v)
end