Deklarationen und Zuweisungen von Klasseneigenschaften in einer einzigen Zeile

In 4D 20 R5 bietet die optimierte Eigenschaftsdeklaration nun die Möglichkeit, Eigenschaften gleichzeitig mit ihrer Deklaration zu initialisieren, ähnlich wie bei der Zuweisung von Variablen.

Diese Verbesserung vereinfacht die Lesbarkeit und Effizienz des Codes, da die Entwickler Eigenschaften in einer einzigen Zeile deklarieren und initialisieren können. Dies erleichtert eine reibungslosere Integration und reduziert den Bedarf an separaten Initialisierungsblöcken. Es optimiert die Entwicklungsabläufe und gewährleistet die Robustheit des Codes über Compiler und Interpreter hinweg, was zu einer saubereren und besser wartbaren Codebasis führt.

Bislang gab es nur eine Möglichkeit, eine Klasseneigenschaft zu erstellen:

property <propertyName> : <type>

Ab 4D 20 R5 verbessern wir die Eigenschaftsdeklaration. Wie bei Variablen können Sie jetzt Ihre Eigenschaft in einer Zeile deklarieren und initialisieren, wie unten beschrieben:

abgeleiteter Typ

property <propertyName> := <value>

Hier entfällt der Typ und wird vom Compiler oder Interpreter auf der Grundlage des angegebenen Wertes ermittelt. Um Kompilierungsfehler zu vermeiden, ist es ratsam, diesen Ansatz ausschließlich bei skalaren Typen zu verwenden, die von Werten, Befehlen oder Methoden stammen.

Beispiel:

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

Deklarierter Typ und Initialisierung

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

Wie bei der Variablendeklaration wird die Eigenschaft mit dem angegebenen Typ erstellt und dann mit dem Wert initialisiert.

Dieser Deklarationstyp muss verwendet werden, wenn Sie eine Eigenschaft mit einem Typ wie ein Klassenattribut, eine Interprozessvariable oder eine globale Eigenschaft initialisieren. Wenn Sie den Typ in diesen Fällen nicht angeben, können der Interpreter und der Compiler den Typ nicht bestimmen und verwenden stattdessen einen Variantentyp. Ein Beispiel:

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

In 4D 20 R5 vereinfacht die Eigenschaftsdeklaration in einer einzigen Zeile die Initialisierung, was die Lesbarkeit und Effizienz des Codes erhöht. Diese Funktion, die in der Dokumentation ausführlich beschrieben wird, ermöglicht eine nahtlose Integration, optimiert die Entwicklungsabläufe und gewährleistet die Robustheit des Codes.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.