Nový přístup k zápisu varietních funkcí

Automaticky přeloženo z Deepl

Mnozí z vás jsou obeznámeni s používáním metod nebo funkcí, které mohou přijímat neurčitý počet parametrů , často označovaných jako variadické funkce.

V rámci našeho pokračujícího procesu zlepšování vašich zkušeností s vývojem jsme ve verzi 4D v20 R3 zjednodušili deklaraci těchto metod zavedením elipsy, čímž se váš kód stal přehlednějším a práce s ním byla jednodušší.

V deklaraci funkce nebo metody můžete nyní v posledním parametru použít „…“, abyste určili, že počet parametrů je proměnný. Tyto body pozastavení lze doplnit typem. Tento typ pak 4D používá ke kontrole typu parametrů přijatých funkcí nebo metodou.

Pokud například chcete vytvořit metodu SumNumbers, která sečte všechna čísla předaná jako parametry:

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

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

return $total

Tuto metodu lze volat s proměnným počtem parametrů:

$total1:=SumNumbers // returns 0

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

Díky této syntaxi nyní 4D kontroluje typy parametrů za vás:

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

Pokud však chcete přijmout libovolný typ, použijte „…“ bez typu:

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

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

Neváhejte a prozkoumejte tyto funkce podrobněji podle dokumentace: Využijte tuto novou syntaxi k vytvoření flexibilních funkcí nebo metod!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.