Как элегантно ссылаться на возвращаемые значения в множественных функциях возвращаемого значения в Lua? - PullRequest
0 голосов
/ 03 января 2019

скажем, у меня есть функция:

function func()
    return 1, 2, 3
end

Есть ли способ элегантно ссылаться на отдельные возвращаемые значения?например,

if func() == 1 then
  print("stuff")
end

но вместо ссылки на второе или третье возвращаемое значение?

я понимаю, что вы можете сделать это

if ({func()})[2] == 2 then ...

, но это выглядит просто ужасно, и можета также просто

_,v = func()
if v == 2 then ...

я бы хотел сделать что-то вроде этого

if func() == _,2 then ...

1 Ответ

0 голосов
/ 03 января 2019

Это будет select:

if select(2, func()) == 2 then ... end

print(select(1, func()) -- prints 1 2 3
print(select(2, func()) -- prints 2 3
print(select(3, func()) -- prints 3
print(select('#', func()) -- prints 3, the total number of arguments received
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...