Copy parameters
Copy parameters {( startFrom )} : Collection
Paramètre | Type | Description | |
---|---|---|---|
startFrom | Integer | → | Starting index (included) |
Résultat | Collection | ← | New collection containing parameters actually passed |
Description
La commande Copy parameters retourne une nouvelle collection contenant tous les paramètres passés à une méthode ou à une fonction. Cette commande est utile lorsque vous devez transférer un certain nombre de paramètres d'une méthode ou d'une fonction à une autre méthode ou fonction.
Dans le paramètre facultatif startFrom, vous pouvez passer l'index du paramètre à partir duquel vous souhaitez commencer à collecter les paramètres à transférer. Le paramètre startFrom lui-même est inclus.
Lorsque la commande Copy parameters est appelée à l'intérieur d'une formule, elle retourne les paramètres passés explicitement à l'aide de apply() ou call() (et non ceux passés à la méthode ou fonction parente).
Copy parameters retourne une collection vide si :
- elle n'est pas appelée dans une méthode ou fonction qui a été appelée par une autre méthode ou fonction,
- aucun paramètre n'a été passé à la méthode ou à la fonction parente.
Exemple 1
Appeler une fonction différente en fonction du premier paramètre et passer d'autres paramètres à cette fonction :
Function selectTask($task Text)
Case of
:($task="Task1")
This.task1(Copy parameters(2))
:($task="Task2")
This.task2(Copy parameters(2))
End case
Ou, appeler une autre fonction ou un autre objet avec apply() passer les paramètres :
Function doSomething($param Text;$extraParameters Variant)
This.delegate.doSomething.apply(This.delegate;Copy parameters)
Exemple 2
Puisque la commande retourne une collection, elle peut être utilisée avec .join() pour générer une liste html par exemple :
// Classe
Function list($typeText)->Text
//le type de liste est "u" ou "o"
var $value : Collection
$value:=Copy parameters(2)
$html:="<"+$type+"l>
* "
$html+=$value.join("
* ")
$html+="
"
return$html
// Méthode
$htmlList:=$c.list("u";"Alpha";"Bravo";"Charlie")
// $htmlList =
* Alpha
* Bravo
* Charlie