You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua中如何从多返回值函数中提取指定返回结果?

Lua 多返回值指定提取方法

你可以通过以下两种常用方式实现需求:

方法1:哑变量占位法

Lua支持多变量同时接收函数返回值,不需要的返回值可以用*惯例哑变量_*占位丢弃:

  • 仅提取单个返回值(以hours为例,是函数的第3个返回值):
-- 前2个返回值用_占位丢弃,仅接收第3个
local _, _, hours = FormatSeconds(123456)
print(hours) -- 输出:10
  • 同时提取多个指定返回值(以minutes、seconds为例,是第4、5个返回值):
-- 前3个返回值用_占位丢弃,接收第4、5个
local _, _, _, minutes, seconds = FormatSeconds(123456)
print(minutes, seconds) -- 输出:17 36

注:_只是Lua社区约定的无意义占位变量名,没有语法强制要求,你也可以替换为其他无用变量名,只是用_可读性更高。

方法2:select 函数法

如果返回值数量多、数占位符麻烦,可以用Lua内置的select函数,语法为select(index, 多返回值),作用是返回从第index位开始的所有后续返回值(索引从1开始计数):

  • 仅提取单个返回值:
-- 取第3个返回值,后续返回值自动丢弃
local hours = select(3, FormatSeconds(123456))
print(hours) -- 输出:10
  • 同时提取多个连续的返回值:
-- 取第4、5个返回值
local minutes, seconds = select(4, FormatSeconds(123456))
print(minutes, seconds) -- 输出:17 36

内容的提问来源于stack exchange,提问作者nodecentral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:00:07