Seite 1 von 1

wunsch: optionaler parameter in der mitte

Verfasst: 07.01.2016 14:40
von C h r i s :)
es ist toll, dass man bei procedure optionale parameter erstellen kann
aber leider immer nur am ende. man muss die parameter so sortieren
dass optionale parameter immer am ende stehen aber manchmal nicht immer sinnvoll von der logik.
es wäre toll wenn man auch in der mitte optionale parameter erstellen kann.
beispiel: pflichtparameter, pflichtparameter, optionaler parameter, pflichtparameter, optionaler parameter
In pb:

Code: Alles auswählen

Procedure MyFunc(Parameter1, Parameter2, Parameter3 = 25, Parameter4, Parameter5 = 0)
Aufruf:

Code: Alles auswählen

MyFunc(123, 456,, 789)
in vb wird es auch so gemacht. einfach ",," für optionale parameter zwischendurch.

Re: wunsch: optionaler parameter in der mitte

Verfasst: 07.01.2016 14:48
von ts-soft
Wurde bereits mehrfach im zuständigem Forum gewünscht: z.B. hier: http://www.purebasic.fr/english/viewtop ... parameters

Re: wunsch: optionaler parameter in der mitte

Verfasst: 07.01.2016 20:26
von Derren
Kleines Workaround:

Code: Alles auswählen

#I = #PB_Ignore

Macro OptParam(_var_, _value_)
	If _var_ = #PB_Ignore : _var_ = _value_ : EndIf
EndMacro 

Procedure test(a.i, b.i, c.i)	
	OptParam(b, 25)
	
	Debug "a: " + a
	Debug "b: " + b
	Debug "c: " + c
	Debug ""
EndProcedure 

Debug "Aufruf mit 3 Paremeter"
test(1, 2, 3)

Debug "Aufruf mit opt. 2. Parameter"
test(1, #I, 3)

Der Anwender muss eben #I schreiben. Ist denke ich vertretbar.

Alternativ halt noch folgendes, anstatt #I=#PB_Ignore:

Code: Alles auswählen

Macro _
	#PB_Ignore
EndMacro 
;....
test(1,_,3)