Lua 函数可以返回多个结果:
a, b, c = unpack({'one', 'two', 'three'})
如果我对第三个返回值不感兴趣,我可以选择在调用函数时忽略它:
a, b = unpack({'one', 'two', 'three'})
调用函数时是否有类似的方法来忽略 X 的第一个元素?
如果我只想要第三个返回值,我可以编写这段代码,但我想知道是否存在更简洁的代码:
_, _, c = unpack({'one', 'two', 'three'})
Lua 函数可以返回多个结果:
a, b, c = unpack({'one', 'two', 'three'})
如果我对第三个返回值不感兴趣,我可以选择在调用函数时忽略它:
a, b = unpack({'one', 'two', 'three'})
调用函数时是否有类似的方法来忽略 X 的第一个元素?
如果我只想要第三个返回值,我可以编写这段代码,但我想知道是否存在更简洁的代码:
_, _, c = unpack({'one', 'two', 'three'})
您可以使用该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
也就是说,我认为在大多数情况下,写作_,_,c = f()
更干净。select
在事先不知道参数编号或将函数调用链接在一起(例如f(select(2, g()))
)时最有用