Déclarations et affectations de propriétés de classe sur une seule ligne

Traduit automatiquement de Deepl

Dans 4D 20 R5, la déclaration rationalisée des propriétés offre désormais la possibilité d’initialiser les propriétés en même temps que leur déclaration, à l’instar de l’affectation d’une variable.

Cette amélioration simplifie la lisibilité et l’efficacité du code en permettant aux développeurs de déclarer et d’initialiser les propriétés sur une seule ligne. Cela facilite l’intégration et réduit le besoin de blocs d’initialisation séparés. Elle optimise les flux de développement et garantit la robustesse du code quel que soit le compilateur ou l’interpréteur, ce qui permet d’obtenir des bases de code plus propres et plus faciles à maintenir.

Jusqu’à présent, il n’existait qu’une seule façon de créer une propriété de classe:

property <propertyName> : <type>

À partir de 4D 20 R5, nous améliorons la déclaration des propriétés. Comme pour les variables, vous pouvez désormais déclarer et initialiser votre propriété sur une seule ligne, comme décrit ci-dessous :

type inféré

property <propertyName> := <value>

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

Exemple :

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

Type déclaré et initialisation

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

Comme pour la déclaration de variable, la propriété 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 propriété avec un type tel qu’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 et le compilateur évalueront le type et utiliseront une variante de type à la place. Par exemple, dans 4D 20 R5, la déclaration de la propriété

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

Dans 4D 20 R5, la déclaration des propriétés sur une seule ligne simplifie l’initialisation, ce qui améliore la lisibilité et l’efficacité du code. Cette fonctionnalité, détaillée dans la documentation, permet une intégration transparente, optimisant les flux de développement et garantissant la robustesse du code.

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.