Saltar al contenido principal
Versión: Siguiente

Copy parameters

Copy parameters {( inicioDesde )} -> Resultado

ParámetroTipoDescripción
inicioDesdeEntero largo🡒Índice de inicio(incluido)
ResultadoCollection🡐Nueva colección que contiene los parámetros pasados realmente

Descripción

El comando Copy parameters devuelve una nueva colección que contiene todos los parámetros realmente pasados a un método o una función. Este comando es útil cuando se necesita reenviar un número variado de parámetros de un método o función a otro método o función.

En el parámetro opcional inicioDesde, puede pasar el índice del parámetro desde el que se va a empezar a recoger los parámetros a reenviar. El propio parámetro inicioDesde está incluido.

Cuando se llama dentro de una fórmula, Copy parameters devuelve los parámetros pasados explícitamente utilizando apply() o call() (y no los pasados al método padre o función).

Copy parameters devuelve una colección vacía si:

  • no se llama en un método o función que haya sido llamado por otro método o función,
  • no se ha pasado ningún parámetro al método padre o función.

Ejemplo 1

Llamando a una función diferente dependiendo del primer parámetro y pasando otros parámetros a esta función:

 Function selectTask($task Text)
 Case of
    :($task="Task1")
       This.task1(Copy parameters(2))
    :($task="Task2")
       This.task2(Copy parameters(2))
 End case

O, llamando a otra función en otro objeto con apply() y pasar los parámetros:

 Function doSomething($param Text;$extraParameters Variant)
 This.delegate.doSomething.apply(This.delegate;Copy parameters)

Ejemplo 2

Como el comando devuelve una colección, se puede utilizar con .join() para crear, por ejemplo, una lista html:

  // Clase
 
 Function list($typeText)->Text
  //tipo de lista es "u" u "o"
 var $value : Collection
 $value:=Copy parameters(2)
 $html:="<"+$type+"l>
* "
 $html+=$value.join("
* ")
 $html+="
"
 return$html
 
  // Método
 
 $htmlList:=$c.list("u";"Alpha";"Bravo";"Charlie")
  // $htmlList =
* Alpha
* Bravo
* Charlie

Ver también

Count parameters