Datum:
Vielleicht finden sich ja hier auch ein paar Lua cracks... Nehmen wir mal diese Trivialbeispiel: b() liefert 3 Werte zurück, a() braucht aber 4.
function a (q,w,e,r) print(q,w,e,r) end function b() return 1,2,3 end |
Wie kann man jetzt hier
a( b() ) |
noch ein Argument anhängen? Das geht nicht:
a( b(),4 ) |
So herum schon, aber das hilft mir nicht weiter:
a( 4, b() ) |
Die explizite Lösung scheidet aus (viel zu viel Tipperei bei langen Namen und vielen Argumenten):
a( {b()}[1], {b()}[2], {b()}[3], 4 )
|
Hat jemand ne pfiffige Idee? P.S.: a() ist eine Bibliotheksfunktion und kann leider nicht geändert werden...
Datum:
Vorher die Argumente in eine Temp-var einlesen ? x,y,z=b() a(x,y,z,4)
Datum:
Ja klar, das geht natürlich auch ;) Mir gings aber eher um die (notwendige) Notation das innerhalb des Funktionsaufrufs zu bewerkstelligen. Hab ne Menge rumprobiert und gelesen, aber das scheint tatsächlich nicht möglich zu sein...
Datum:
Nur so als Gedanke :)
function b()
return 1,2,3
end
function a(u,v,w,x)
print("A=",u,v,w,x)
end
function intercall(a,b,c)
local x,y,z
x,y,z=a()
b(x,y,z,c)
end
intercall(b,a,4) -- rufe 'b' auf und gib es an 'a' inkl. Argument 4



