Semplificare le dichiarazioni e le assegnazioni di variabili in una sola riga

Tradotto automaticamente da Deepl

A partire da 4D v20 R3, potete dire addio ai giorni in cui dovevate scrivere più righe di codice per le dichiarazioni e le assegnazioni delle variabili. Ora è possibile semplificare il codice, eliminare la ridondanza e aumentare l’efficienza con facilità.

Ecco come fare!

Finora si poteva scrivere:

var <variableName> : <type>

Questa sintassi è stata migliorata per consentire di dichiarare e inizializzare la variabile in una sola riga.

tipo dedotto

var <variableName> := <value>

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

Esempio:

//BLOB
var $vxBlob : Blob
INTEGER TO BLOB(0x0206; $vxBlob; Native byte ordering)
var $blob:=$vxBlob
//Boolean
var $bool:=True
//Null
var $null:=Null
//Real
var $num:=(569/2)
//Object
var $obj:={att1: 1}
//Pointer
var $point:=->$obj
//Text
var $text:="Hello"
//Collection
var $col:=[1; 2; 3]
//Date
var $date:=Current date
//Time
var $time:=Current time
//Picture
var $pict : Picture
var $image:=$pict

Quando si utilizza questo stile di scrittura, si ricorda che 4D cerca di dedurre il tipo più generale. Ad esempio, 4D utilizza il tipo Real e non il tipo Integer quando una variabile viene inizializzata con 10. In questo modo è possibile utilizzare questa variabile con i valori di un’altra variabile. Ciò consente di utilizzare questa variabile con qualsiasi tipo di calcolo. Se si desidera utilizzare un intero, è necessario dichiarare esplicitamente il tipo della variabile.

Tipo dichiarato e inizializzazione

var <variableName> : <type> := <value>

In questo caso, la variabile viene creata con il tipo indicato e poi inizializzata con il valore.

Questo tipo di dichiarazione deve essere utilizzato quando si inizializza una variabile con un tipo complesso, come un attributo di classe, una variabile interprocesso o una variabile globale. Se non si specifica il tipo in questi casi, l’interprete valuterà l’espressione e dedurrà il tipo, mentre il compilatore non sarà in grado di dedurre il tipo e utilizzerà invece un tipo variante. Per esempio:

var $myClass:={myAttribute: "Hello there!"}
var $myAttribute:=$myClass.myAttribute
// The interpreter knows the type of $myClass.myAttribute: $myAttribute is a declared as Text
// The compiler doesn't know the type of $myClass.myAttribute: $myAttribute is a declared as variant

Perciò, immergetevi nella documentazione, esplorate le infinite possibilità offerte da questa funzione e verificate in prima persona come questa novità rivoluzionaria darà forma al futuro dei vostri sforzi di codifica.

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