的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 

结果:的Lua:在返回值项目的商店数目不详

a b c   -- A 
a     -- B 

我怎样才能让B版的行为像一个版本?在“bar_store”中我需要调用函数,可能会返回任意数量的返回值,但是我需要在函数调用之后做一些工作(在我的示例中为“process”)

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

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

如果你找到答案,那么你找到了它。 – Puppy

+0

它发生了。给自己一张支票,让它显示为正在回答。 – BMitch

+0

不需要创建临时表来存储foo()的返回值。您可以执行以下操作:return process(foo()) – sylvanaar