Muitos de vocês estão familiarizados com o uso de métodos ou funções que podem aceitar um número não especificado de parâmetros, muitas vezes referidos como funções variádicas.
Em nosso processo contínuo para melhorar sua experiência de desenvolvimento, 4D v20 R3 simplificou a declaração desses métodos introduzindo elipses, tornando seu código mais direto e fácil de trabalhar.
Na sua declaração de função ou método, pode agora empregar “…” no seu último parâmetro para especificar que o número de parâmetros é variável. Esses pontos de suspensão podem ser suplementados por um tipo. Este tipo é então usado por 4D para verificar o tipo de parâmetros recebidos pela função ou método.
Por exemplo, se quiser criar um método SumNumbers que soma todos os números passados como parâmetros:
#DECLARE( ... : Real) : Real
var $number; $total : Real
var $i : Integer
For ($i; 1; Count parameters)
$total+= ${$i}
End for
return $total
Este método pode ser chamado com um número variável de parâmetros:
$total1:=SumNumbers // returns 0
$total2:=SumNumbers(1; 2; 3; 4; 5) // returns 15
Com essa sintaxe, 4D agora verifica os tipos de parâmetros para você:
$total3:=SumNumbers(1; 2; "test"; 4; 5) // returns an error
Mas se quiser aceitar qualquer tipo, use “…” sem tipo:
function AcceptAllType(...)
var $value : variant
For each ($value; Copy parameters())
// your code here
End for each
Tire vantagem dessa nova sintaxe para criar funções ou métodos flexíveis, e sinta-se livre para explorar essas características em mais detalhes consultando a documentação!