Sintassi semplice per le funzioni e i metodi della classe

Tradotto automaticamente da Deepl

L’uso delle variabili $1, $2 e $n nel codice non solo rende il codice meno leggibile, ma può anche aumentare la confusione, poiché il cervello umano può avere difficoltà a ricordare a cosa corrispondono queste variabili. La soluzione è creare una variabile con un nome comprensibile e assegnarle il valore di $1, $2 o $n.

In 4D v18 R5 c’è una buona notizia: ora è possibile assegnare un nome ai parametri quando si dichiara un metodo di progetto:

  • un metodo di progetto,
  • un trigger
  • un metodo di database
  • un metodo di un modulo
  • un costruttore di una classe
  • una funzione di una classe.

Vediamo come!

In 4D v18 R4 abbiamo mostrato una nuova sintassi per dichiarare le variabili:

var $name : Text
var $birthdate : Date
var $file : 4D.File

La nuova sintassi per metodi e funzioni è molto simile.

Nuova dichiarazione per le classi

Dopo il nome della funzione, aggiungere i vari parametri di ingresso separati da un punto e virgola tra parentesi:

Class Constructor($firstname: Text; $lastname: Text; $birthdate: Date)
This .lastName:=$lastname
This .firstName:=$firstname
This .birthdate:=$birthdate

Function setAdress ($streetNumber: Text; $streetName : Text; $city : Text)
This .streetNumber:=$streetNumber
This .streetName:=$streetName
This .city:=$city

Per il parametro di uscita, basta aggiungere il simbolo “->”, quindi il nome e il tipo come per il parametro di ingresso.

Function getFullname -> $fullname: Text
$fullname :=This.firstName+" "+Upper(This.lastName)

Function sendMessage ($text: Text) -> $message: Text
$message :="@"+This.firstname+": "+$text

Nuova dichiarazione per i metodi

Lo stesso principio si applica ai metodi con una nuova parola chiave: #DECLARE.

  • Un esempio con un metodo del progetto “highlightRow” “:

#DECLARE($listboxName: Text; $rowNum: Integer)
LISTBOX SELECT ROW (*; $listboxName; $rowNum)

  • Un esempio con il metodo On Web Authentication metodo database:

#DECLARE($url: Text; $header: Text; \
$BrowserIP : Text; $ServerIP: Text; \
$user : Text; $password: Text) \
->$RequestAccepted: Boolean

$entitySelection :=ds.User.query("login=:1"; $user)
// Check hash password...
// ...

Debugger

Il nome del parametro è visibile anche nel riquadro della catena di chiamate del debugger. Ecco un esempio con una funzione di classe:

Bonus

Se avete bisogno di un ulteriore motivo per utilizzare la nuova sintassi, date un’occhiata all’immagine qui sotto. Sì! La dichiarazione della funzione viene visualizzata nella barra di stato esattamente come avviene per i comandi 4D.

blank

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à.