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!