2017-08-26 1 views
3

J'ai une fonction (que je ne peux pas changer) renvoyant plusieurs valeurs:Lua retournent plusieurs valeurs comme arguments

function f1() 
    ... 
    return a, b 
end 

et une autre fonction (que je ne peux pas changer) prendre plusieurs arguments:

function f2(x, y, z) 
    ... 
end 

est-il un moyen de le faire:

f2(f1(), c) 

et ont xêtre un, y être b et z être c?

+0

Eh bien non, malheureusement, cela ne fonctionne pas (J'utilise love2D) –

Répondre

1

Vous ne pouvez pas le faire en une seule ligne, car f2(f1(),c) ajuste les résultats retournés par f1 à une seule valeur.

2

Vous pouvez utiliser les résultats intermédiaires

local a, b = f1() 
f2(a, b, c) 
+0

Cela fonctionne, mais je voudrais le faire en une ligne –

0

Vous pouvez utiliser une table comme aide:

tbl={f1()} 
tbl[3]=c 
f2(unpack(tbl)) 
+0

Cela fonctionne, mais je voudrais le faire en une seule ligne –