Aller au contenu principal
Version: Next

Copy parameters

Copy parameters {( startFrom )} -> Résultat

ParamètreTypeDescription
startFromEntier long🡒Starting index (included)
RésultatCollection🡐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

Voir aussi

Count parameters