Un modo semplice per gestire i parametri

Tradotto automaticamente da Deepl

Nella dichiarazione di una funzione o di un metodo, si definiscono esplicitamente i suoi parametri. Poi, quando si chiama quella funzione o quel metodo, si possono passare meno parametri se alcuni sono opzionali. Oppure, se si usa la dichiarazione con ${n}, il numero di parametri passati è variabile. In questo caso, si usa il comando Count Parameters con un ciclo sugli argomenti. Questo codice funziona perfettamente. Tuttavia, è un po’ pesante.

Ci avete chiesto un modo più leggero per gestire i parametri e vi abbiamo ascoltato. A partire da 4D v19 R5, vi forniamo un nuovo comando, Copy parametersche consente di scrivere un codice più semplice, elegante e facile da leggere.

Guardate il nuovo comando in azione.

Nuovo comando

Il nuovo comando, Copy parametersrestituisce un insieme di parametri passati a una funzione o a un metodo. Se si passa il parametro “startFrom” al comando Copy parameters il comando restituisce un insieme che contiene l’elemento dall’indice “startFrom“.

Esempi

Manipolare i parametri come un insieme. Ad esempio, concatenare una stringa con i parametri per creare un elenco HTML non ordinato:

// 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>

Richiama una funzione diversa a seconda del primo parametro e passa gli altri parametri a questo metodo:

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

Oppure, chiamare un’altra funzione su un altro oggetto con apply() e passare i parametri:

Function doSomething($param: Text; $extraParameters: Variant)
This .delegate.doSomething.apply(This.delegate; Copy parameters)

Avanti

Per ulteriori informazioni, è possibile leggere la documentazione. Non esitate a condividere le vostre idee e i vostri esempi sul forum.

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.