Bei der Deklaration einer Funktion oder Methode werden die Parameter explizit angegeben. Wenn Sie diese Funktion oder Methode aufrufen, können Sie ihr weniger Parameter übergeben, wenn einige optional sind. Oder, wenn Sie die Deklaration mit ${n} verwendet haben, ist die Anzahl der übergebenen Parameter variabel. In diesem Fall verwenden Sie den Count Parameters Befehl mit einer Schleife über die Argumente. Dieser Code funktioniert tadellos. Trotzdem ist er ein wenig schwerfällig.
Sie haben uns nach einer einfacheren Methode zur Handhabung von Parametern gefragt, und wir haben zugehört. Ab 4D v19 R5 stellen wir Ihnen einen neuen Befehl zur Verfügung, Copy parameterszur Verfügung, mit dem Sie einen nahtlosen, eleganteren und leichter zu lesenden Code schreiben können.
Sehen Sie sich den neuen Befehl in Aktion an.
Neuer Befehl
Der neue Befehl, Copy parametersgibt eine Sammlung von Parametern zurück, die an eine Funktion oder eine Methode übergeben wurden. Wenn Sie den Parameter „startFrom“ Parameter an den Copy parameters übergeben, wird eine Sammlung zurückgegeben, die das Element mit dem Index „startFrom“ enthält.
Beispiele
Manipulieren Sie die Parameter als eine Sammlung. Verketten Sie zum Beispiel eine Zeichenkette mit den Parametern, um eine ungeordnete HTML-Liste zu erstellen:
// 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>
Rufen Sie je nach dem ersten Parameter eine andere Funktion auf und übergeben Sie die anderen Parameter an diese Methode:
Function selectTask($task: Text)
Case of
: ($task="Task1")
This .task1(Copy parameters(2))
: ($task="Task2")
This .task2(Copy parameters(2))
End case
Oder rufen Sie eine andere Funktion auf einem anderen Objekt mit apply() auf und übergeben Sie die Parameter:
Function doSomething($param: Text; $extraParameters: Variant)
This .delegate.doSomething.apply(This.delegate; Copy parameters)
Weiter
Für weitere Informationen können Sie die Dokumentation lesen. Zögern Sie nicht, Ihre Ideen und Beispiele im Forum zu teilen.