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

标签 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”)

最佳答案

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

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

关于Lua:在返回值中存储未指定数量的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801698/

相关文章:

string - Lua 中平衡括号的可选捕获

string - Lua中将字符串分割成二维表

lua - Lua中小数点显示错误

c - 从 C 获取 Lua 字符串

lua - 如何使用 srlua 制作可执行的 Lua 脚本?

oop - 关于 Lua 中的冒号运算符

lua - 获取操作系统版本

file - Lua中如何获取文件大小和删除文件?

lua - 每个标签列表项都有不同的背景颜色 AwesomeWM

c - 是否可以在 Lua 中禁用堆栈回溯?