Un nuevo enfoque para escribir funciones variádicas

Traducido automáticamente de Deepl

Muchos de ustedes están familiarizados con el uso de métodos o funciones que pueden aceptar un número indeterminado de parámetros, a menudo denominados funciones variádicas.

En nuestro continuo proceso para mejorar su experiencia de desarrollo, 4D v20 R3 ha simplificado la declaración de estos métodos introduciendo la elipsis, haciendo su código más sencillo y fácil de trabajar.

En su declaración de función o método, ahora puede emplear «…» en su último parámetro para especificar que el número de parámetros es variable. Estos puntos suspensivos pueden completarse con un tipo. Este tipo es entonces utilizado por 4D para comprobar el tipo de parámetros recibidos por la función o el método.

Por ejemplo, si desea crear un método SumNumbers que sume todos los números pasados 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 puede ser llamado con un número variable de parámetros:

$total1:=SumNumbers // returns 0

$total2:=SumNumbers(1; 2; 3; 4; 5) // returns 15

Con esta sintaxis, 4D comprueba los tipos de parámetros por usted:

$total3:=SumNumbers(1; 2; "test"; 4; 5) // returns an error

Pero si quiere aceptar cualquier tipo, use «…» sin tipo:

function AcceptAllType(...)
var $value : variant

For each ($value; Copy parameters())
   // your code here
End for each 

Aproveche esta nueva sintaxis para crear funciones o métodos flexibles, y siéntase libre de explorar estas características en mayor detalle consultando la documentación.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.