Seite 1 von 1
Procedure Parameter Array mit Default Wert möglich?
Verfasst: 21.05.2022 11:56
von SieGeL2k22
Hallo Community,
besteht die Möglichkeit in PB, Arrays als optionale Parameter einer Procedure zu definieren?
Ich würde gerne bei folgender Definition
Code: Alles auswählen
Procedure Call(url.s, method, Array postdata(1), Array params(1))
postdata() und params() optional haben, kann aber leider in der Doku dazu nichts passendes finden, ob das überhaupt möglich ist?
Re: Procedure Parameter Array mit Default Wert möglich?
Verfasst: 21.05.2022 12:52
von STARGÅTE
Nein (leider) nicht. Du kannst aber das Array in eine Struktur verpacken und dann optional diese Struktur übergeben:
Das Array verhält sich dann wie ein normaler Array-Parameter, dass heißt, er wird per Referenz übergeben (also keine Kopie) sodass Änderungen in der Prozedur übernommen werden.
Code: Alles auswählen
Structure MyArray
Array i.i(0)
EndStructure
Procedure Call(url.s, method, *postdata.MyArray=#Null, *params.MyArray=#Null)
If *postdata
Debug ArraySize(*postdata\i())
*postdata\i(1) = 456
EndIf
EndProcedure
Define postdata.MyArray : Dim postdata\i(10)
postdata\i(0) = 123
Call("Blub", 1, postdata)
Debug postdata\i(1)
Re: Procedure Parameter Array mit Default Wert möglich?
Verfasst: 21.05.2022 13:16
von SieGeL2k22
@STARGÅTE: Okay alles klar, ich hatte auch schon überlegt gehabt, das über eine Struct zu realisieren, wollte aber sicherheitshalber noch mal nachfragen.
Dann werde ich das mal so machen, vielen Dank für Deine Antwort!