Dichiarazioni e assegnazioni di proprietà della classe su un’unica riga

Tradotto automaticamente da Deepl

In 4D 20 R5, la semplificazione della dichiarazione delle proprietà offre ora la possibilità di inizializzare le proprietà contemporaneamente alla loro dichiarazione, come l’assegnazione di una variabile.

Questo miglioramento semplifica la leggibilità e l’efficienza del codice, consentendo agli sviluppatori di dichiarare e inizializzare le proprietà in un’unica riga. Ciò facilita l’integrazione e riduce la necessità di blocchi di inizializzazione separati. Ottimizza i flussi di lavoro di sviluppo e garantisce la robustezza del codice tra compilatori e interpreti, promuovendo codebase più pulite e manutenibili.

Finora esisteva un solo modo per creare una proprietà di classe:

property <propertyName> : <type>

A partire da 4D 20 R5, abbiamo migliorato la dichiarazione delle proprietà. Come per le variabili, ora è possibile dichiarare e inizializzare la proprietà su una sola riga, come descritto di seguito:

tipo dedotto

property <propertyName> := <value>

In questo caso, il tipo è omesso e sarà determinato dal compilatore o dall’interprete in base al valore fornito. Per evitare errori di compilazione, è consigliabile utilizzare questo approccio esclusivamente con tipi scalari provenienti da valori, comandi o metodi.

Esempio:

//BLOB
property myBlob:=GetBlob()
//Boolean
property myBool:=True
//Null
property myNull:=Null
//Real
property myNum:=(569/2)
//Object
property myObj:={att1: 1}
//Text
property myText:="Hello"
//Collection
property myCol:=[1; 2; 3]
//Date
property myDate:=Current date
//Time
property myTime:=Current time
//Picture
property myPicture:=GetPicture()

// Properties must be declared before class constructor or functions. 
Class constructor

Tipo dichiarato e inizializzazione

property <propertyName> : <type> := <value>

Come per la dichiarazione della variabile, la proprietà viene creata con il tipo dato e poi inizializzata con il valore.

Questo tipo di dichiarazione deve essere utilizzato quando si inizializza una proprietà con un tipo come un attributo di classe, una variabile interprocesso o una globale. Se non si specifica il tipo in questi casi, l’interprete e il compilatore valuteranno la proprietà senza essere in grado di determinarne il tipo e utilizzeranno invece un tipo variante. Ad esempio:

property myAttribute:=JSON Parse(GetJson()).myAttribute
// The interpreter and the compiler don't know the type of JSON Parse(GetJson()).myAttribute.
// The myAttribute property is declared as a variant

In 4D 20 R5, la dichiarazione delle proprietà in un’unica riga semplifica l’inizializzazione, migliorando la leggibilità e l’efficienza del codice. Questa funzione, descritta in dettaglio nella documentazione, consente un’integrazione perfetta, ottimizzando i flussi di lavoro di sviluppo e garantendo la robustezza del codice.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato 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.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.