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

Joh*_*ohn 3 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
Run Code Online (Sandbox Code Playgroud)

结果:

a   b   c           -- A
a                   -- B
Run Code Online (Sandbox Code Playgroud)

如何使B版本像A版本一样?在"bar_store"中我需要调用函数而不是返回任意数量的返回值,但是我需要在函数调用之后做一些工作(在我的例子中为"process")

Joh*_*ohn 6

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

function bar_store()
  local v = {foo()}
  process()
  return unpack(v)
end
Run Code Online (Sandbox Code Playgroud)