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!