Ein neuer Ansatz zum Schreiben variabler Funktionen

Viele von Ihnen sind mit der Verwendung von Methoden oder Funktionen vertraut, die eine unbestimmte Anzahl von Parametern akzeptieren können , oft auch als variadische Funktionen bezeichnet.

Im Rahmen unseres kontinuierlichen Prozesses zur Verbesserung Ihrer Entwicklungserfahrung hat 4D v20 R3 die Deklaration dieser Methoden durch die Einführung von Ellipsen optimiert, wodurch Ihr Code übersichtlicher und einfacher zu handhaben ist.

In Ihrer Funktions- oder Methodendeklaration können Sie nun „…“ in Ihrem letzten Parameter verwenden, um anzugeben, dass die Anzahl der Parameter variabel ist. Diese Punkte können durch einen Typ ergänzt werden. Dieser Typ wird dann von 4D verwendet, um den Typ der von der Funktion oder Methode empfangenen Parameter zu prüfen.

Wenn Sie zum Beispiel eine SumNumbers-Methode erstellen wollen, die alle als Parameter übergebenen Zahlen summiert:

#DECLARE( ...  : Real) : Real
var $number; $total : Real
var $i : Integer

For ($i; 1; Count parameters)
	$total+= ${$i}
End for 

return $total

Diese Methode kann mit einer variablen Anzahl von Parametern aufgerufen werden:

$total1:=SumNumbers // returns 0

$total2:=SumNumbers(1; 2; 3; 4; 5) // returns 15

Mit dieser Syntax prüft 4D nun die Parametertypen für Sie:

$total3:=SumNumbers(1; 2; "test"; 4; 5) // returns an error

Wenn Sie jedoch einen beliebigen Typ akzeptieren wollen, verwenden Sie „…“ ohne Typ:

function AcceptAllType(...)
var $value : variant

For each ($value; Copy parameters())
   // your code here
End for each 

Nutzen Sie die Vorteile dieser neuen Syntax, um flexible Funktionen oder Methoden zu erstellen, und sehen Sie sich diese Funktionen in der Dokumentation genauer an!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.