如何在Lua中打包函数返回的可变数量输出?
在Lua中获取函数的所有返回值
当你直接用outputs_list = my_function()时,确实只会拿到函数的第一个返回值,其余返回值会被自动丢弃。要实现类似Python中*outputs_list = my_function()的效果,把所有返回值存入一个表(Lua里的列表结构),可以用**表构造器{...}**来完整收集所有返回值:
function my_function() return 1, "hello", true -- 示例:返回多个值 end -- 收集所有返回值到表中 outputs_list = {my_function()} -- 遍历表查看结果 for idx, val in ipairs(outputs_list) do print(idx, val) end
运行这段代码会输出:
1 1
2 hello
3 true
如果后续需要把表中的值重新作为函数的多返回值传递,可以用table.unpack()(Lua 5.2及以上版本)或者unpack()(Lua 5.1)来展开表:
-- 假设另一个需要多参数的函数 function another_func(a, b, c) print(a, b, c) end -- 展开outputs_list作为参数传递 another_func(table.unpack(outputs_list))
内容的提问来源于stack exchange,提问作者Mateo Vial
相关产品推荐
相关产品推荐

