Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Copy parameters
|
Copy parameters {( inicioDesde )} -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
inicioDesde | Inteiro longo |
![]() |
Indice inicio (incluido) | |||||
Resultado | Collection |
![]() |
Nova coleção contendo parâmetros realmente passados | |||||
O comando Copy parameters devolve uma nova coleção que contém todos os parâmetros realmente passados a um método ou uma função. Este comando é útil quando se necessita reenviar um número variado de parâmetros de um método ou função a outro método ou função.
No parâmetro opcional inicioDesde, pode passar o índice do parâmetro desde o qual vai começar a recolher os parâmetros a reenviar. O próprio parâmetro inicioDesde está incluido.
Quando chamar dentro de uma fórmula, Copy parameters devolve os parâmetros passados explícitamente utilizando apply() ou call() (e não os passados ao método pai ou função).
Copy parameters devolve uma coleção vazia se:
Chamando a uma função diferente dependendo do primeiro parâmetro e passando outros parâmetros a esta função:
Function selectTask($task Text)
Case of
:($task="Task1")
This.task1(Copy parameters(2))
:($task="Task2")
This.task2(Copy parameters(2))
End case
Ou, chamando a outra função em outro objeto com apply() e passar os parâmetros:
Function doSomething($param Text;$extraParameters Variant)
This.delegate.doSomething.apply(This.delegate;Copy parameters)
Como o comando devolve uma coleção, pode ser utilizada com .join() para criar, por exemplo, uma lista html:
// Classe
Function list($typeText)->Text
//tipo de lista é "u" ou "o"
var $value : Collection
$value:=Copy parameters(2)
$html:="<"+$type+"l><li>"
$html+=$value.join("</li><li>")
$html+="</li></"+$type+"l>"
return$html
// Método
$htmlList:=$c.list("u";"Alpha";"Bravo";"Charlie")
// $htmlList = <ul><li>Alpha</li><li>Bravo</li><li>Charlie</li></ul>
Produto: 4D
Tema: Linguagem
Número
1790
Criado por: 4D v19 R5
Manual de linguagem 4D ( 4D v20 R7)