Uma nova abordagem à escrita de funções variádicas

Tradução automática de Deepl

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!

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.