Une nouvelle approche de l’écriture des fonctions variadiques

Traduit automatiquement de Deepl

Beaucoup d’entre vous ont l’habitude d’utiliser des méthodes ou des fonctions qui peuvent accepter un nombre indéterminé de paramètres, souvent appelées fonctions variadiques.

Dans le cadre de notre processus continu d’amélioration de votre expérience de développement, 4D v20 R3 a rationalisé la déclaration de ces méthodes en introduisant l’ellipse, ce qui rend votre code plus simple et plus facile à utiliser.

Dans votre déclaration de fonction ou de méthode, vous pouvez désormais employer « … » dans votre dernier paramètre pour spécifier que le nombre de paramètres est variable. Ces points de suspension peuvent être complétés par un type. Ce type est alors utilisé par 4D pour vérifier le type des paramètres reçus par la fonction ou la méthode.

Par exemple, si vous voulez créer une méthode SumNumbers qui additionne tous les nombres passés en paramètres :

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

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

return $total

Cette méthode peut être appelée avec un nombre variable de paramètres :

$total1:=SumNumbers // returns 0

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

Avec cette syntaxe, 4D vérifie les types de paramètres pour vous :

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

Mais si vous voulez accepter n’importe quel type, utilisez « … » sans type :

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

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

Profitez de cette nouvelle syntaxe pour créer des fonctions ou des méthodes flexibles, et n’hésitez pas à explorer ces fonctionnalités plus en détail en vous référant à la documentation !

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.