Forum: PC-Programmierung Lua; Argumente "zusammenlegen"


von S. Kript (Gast)


Lesenswert?

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.
1
function a (q,w,e,r)
2
  print(q,w,e,r)
3
end
4
5
function b()
6
  return 1,2,3
7
end

Wie kann man jetzt hier
1
  a( b() )

noch ein Argument anhängen?

Das geht nicht:
1
  a( b(),4 )


So herum schon, aber das hilft mir nicht weiter:
1
  a( 4, b() )


Die explizite Lösung scheidet aus (viel zu viel Tipperei
bei langen Namen und vielen Argumenten):
1
  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...

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Vorher die Argumente in eine Temp-var einlesen ?
x,y,z=b()
a(x,y,z,4)

von S. Kript (Gast)


Lesenswert?

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...

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.