Una forma perfecta de gestionar los parámetros

Traducido automáticamente de Deepl

En la declaración de una función o método, se definen explícitamente sus parámetros. Luego, al llamar a esa función o método, puedes pasarle menos parámetros si algunos son opcionales. O bien, si has utilizado la declaración con ${n}, el número de parámetros pasados es variable. En este caso, se utiliza el comando Count Parameters con un bucle sobre los argumentos. Este código funciona perfectamente. Sin embargo, es un poco pesado.

Nos habéis pedido una forma más ligera de manejar los parámetros, y os hemos escuchado. A partir de 4D v19 R5, le proporcionamos un nuevo comando, Copy parameters, que le permitirá escribir un código más fluido, elegante y fácil de leer.

Vea el nuevo comando en acción.

Nuevo comando

El nuevo comando, Copy parameters, devuelve una colección de los parámetros pasados a una función o a un método. Si se pasa el parámetro «startFrom«al comando Copy parameters devuelve una colección que contiene el elemento del índice «startFrom«.

Ejemplos

Manipule los parámetros como una colección. Por ejemplo, concatenar una cadena con los parámetros para crear una lista HTML desordenada:

// Class
Function list() -> $html: Text
var $value : Collection
$value :=Copy parameters
$html :="<ul><li>"
$html +=$value.join("</li><li>")
$html +="</li></ul>"
return $html

// Method
$htmlList :=$c.list("Alpha"; "Bravo"; "Charlie"
)
// $htmlList: <ul><li>Alpha</li><li>Bravo</li><li>Charlie</li></ul>

Llama a una función diferente dependiendo del primer parámetro y pasa los otros parámetros a este método:

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

O bien, llamar 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)

Siguiente

Puedes leer la documentación para obtener más información. No dudes en compartir tus ideas y ejemplos en el foro.

Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.