Lua中if条件下如何获取函数的第二个返回值?

Dad*_*hah 6 lua

我有一个返回两个值的函数。有没有办法检查 if 条件中的第二个值?

local function a()
return 1 , true
end

if a()[2] == true then
print("yes")
end
Run Code Online (Sandbox Code Playgroud)

小智 10

您的函数返回一个由两个值组成的元组:1并且true
(至少)有两种方法可以提取元组的第二个值:

  1. 您可以将元组转换为表并为其建立索引:
if ({a()})[2] == true then
Run Code Online (Sandbox Code Playgroud)
  1. 您可以移动元组(以便第二个值成为第一个值)
if select(2, a()) == true then
Run Code Online (Sandbox Code Playgroud)