Simplifier les déclarations et affectations de variables en une seule ligne

Traduit automatiquement de Deepl

À partir de 4D v20 R3, vous pouvez dire adieu à l’époque où il fallait écrire plusieurs lignes de code pour les déclarations et les affectations de variables. Désormais, vous pouvez rationaliser votre code, éliminer les redondances et améliorer votre efficacité en toute simplicité.

Voici comment !

Jusqu’à présent, nous pouvions écrire :

var <variableName> : <type>

Nous améliorons cette syntaxe pour vous permettre de déclarer et d’initialiser votre variable en une seule ligne.

type déduit

var <variableName> := <value>

Ici, le type est omis et sera déterminé par le compilateur ou l’interprèteur en fonction de la valeur fournie. Il est conseillé d’utiliser cette approche exclusivement avec des types scalaires provenant de valeurs, de commandes ou de méthodes afin d’éviter les erreurs de compilation.

Exemple :

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

Lorsque vous utilisez ce style d’écriture, rappelez-vous que 4D essaie de déduire le type le plus général. Par exemple, 4D utilise le type Real et non le type Integer lorsqu’une variable est initialisée par 10. Cela vous permet d’utiliser cette variable avec n’importe quel type de calcul. Si vous souhaitez utiliser un Integer, vous devez déclarer explicitement le type de votre variable.

Type déclaré et initialisation

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

Ici, la variable est créée avec le type donné puis initialisée avec la valeur.

Ce type de déclaration doit être utilisé lorsque vous initialisez une variable avec un type complexe comme un attribut de classe, une variable interprocessus ou une variable globale. Si vous ne spécifiez pas le type dans ces cas, l’interpréteur évaluera l’expression et déduira le type, tandis que le compilateur ne sera pas en mesure de déduire le type et utilisera un type variant à la place. C’est le cas par exemple :

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

Alors, plongez-vous dans la documentation, explorez les possibilités infinies qu’offre cette fonctionnalité et constatez par vous-même comment cet ajout qui change la donne façonnera l’avenir de vos efforts de codage.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.