V deklaraci funkce nebo metody explicitně definujete její parametry. Při volání této funkce nebo metody jí pak můžete předat méně parametrů, pokud jsou některé z nich nepovinné. Nebo, pokud jste použili deklaraci s ${n}, je počet předávaných parametrů proměnný. V takovém případě použijete Count Parameters příkaz s cyklem nad argumenty. Tento kód funguje bezchybně. Přesto je trochu těžkopádný.
Požádali jste nás o lehčí způsob zpracování parametrů a my jsme vás vyslyšeli. Počínaje verzí 4D v19 R5 vám nabízíme nový příkaz, Copy parameters, který vám umožní psát bezproblémový, elegantnější a přehlednější kód.
Podívejte se na nový příkaz v akci.
Nový příkaz
Nový příkaz, Copy parameters, vrací kolekci parametrů předaných funkci nebo metodě. Pokud předáte příkaz „startFrom“ parametr příkazu Copy parameters příkaz, vrátí kolekci, která obsahuje prvek z indexu „startFrom„.
Příklady
Manipulace s parametry jako s kolekcí. Například spojte řetězec s parametry a vytvořte neuspořádaný seznam HTML:
// Class
)
Function list() -> $html: Text
var $value : Collection
$value :=Copy parameters
$html :="<ul><li>"
$html +=$value.join("</li><li>")
$html +="</li></ul>"
return $html
// Method
$htmlList :=$c.list("Alpha"; "Bravo"; "Charlie"
// $htmlList: <ul><li>Alpha</li><li>Bravo</li><li>Charlie</li></ul>
Zavolání jiné funkce v závislosti na prvním parametru a předání ostatních parametrů této metodě:
Function selectTask($task: Text)
Case of
: ($task="Úloha1")
This .task1(Copy parameters(2))
: ($task="Úloha2")
This .task2(Copy parameters(2))
End case
Nebo zavolejte jinou funkci na jiném objektu pomocí apply() a předejte parametry:
Function doSomething($param: Text; $extraParameters: Variant)
This .delegate.doSomething.apply(This.delegate; Copy parameters)
Další
Další informace si můžete přečíst v dokumentaci. Neváhejte se podělit o své nápady a příklady na fóru.