如何忽略Lua中函数的第一个结果?

Thi*_*ise 20 lua function multiple-results

Lua函数可以返回多个结果:

a, b, c = unpack({'one', 'two', 'three'})
Run Code Online (Sandbox Code Playgroud)

如果我对第三个返回值不感兴趣,我可以选择在调用函数时忽略它:

a, b = unpack({'one', 'two', 'three'})
Run Code Online (Sandbox Code Playgroud)

在调用函数时是否有类似的方法忽略X的第一个元素?

如果我只想要第三个返回值,我可以编写这段代码,但我想知道是否存在更清晰的代码:

_, _, c = unpack({'one', 'two', 'three'})
Run Code Online (Sandbox Code Playgroud)

int*_*jay 22

你可以使用这个select功能.它将返回所有参数index,其中index第一个参数给出select.

例子:

c = select(3, unpack({'one', 'two', 'three'}))
b, c = select(2, unpack({'one', 'two', 'three'}))
b = select(2, unpack({'one', 'two', 'three'}))   --discard last return value
Run Code Online (Sandbox Code Playgroud)

也就是说,我认为在大多数情况下,写作_,_,c = f()更清晰.select当参数号未提前知道或链接函数调用时(例如f(select(2, g())))