Mit 4D v20 R3 können Sie sich von der Zeit verabschieden, in der Sie mehrere Codezeilen für Variablendeklarationen und -zuweisungen schreiben mussten. Jetzt können Sie Ihren Code rationalisieren, Redundanzen beseitigen und die Effizienz mühelos steigern.
Und so geht’s!
Bis jetzt konnten wir schreiben:
var <variableName> : <type>
Wir verbessern diese Syntax, damit Sie Ihre Variable in einer einzigen Zeile deklarieren und initialisieren können.
abgeleiteter Typ
var <variableName> := <value>
Hier wird der Typ weggelassen und vom Compiler oder Interpreter auf der Grundlage des angegebenen Wertes bestimmt. Es ist ratsam, diesen Ansatz ausschließlich bei skalaren Typen zu verwenden, die von Werten, Befehlen oder Methoden stammen, um Kompilierungsfehler zu vermeiden.
Beispiel:
//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
Wenn Sie diesen Schreibstil verwenden, denken Sie daran, dass 4D versucht, den allgemeinsten Typ abzuleiten. Zum Beispiel verwendet 4D den Typ Real und nicht den Typ Integer, wenn eine Variable mit 10 initialisiert wird. So können Sie diese Variable mit jeder Art von Berechnung verwenden. Wenn Sie eine Integer-Variable verwenden möchten, müssen Sie den Typ Ihrer Variablen explizit deklarieren.
Deklarierter Typ und Initialisierung
var <variableName> : <type> := <value>
Hier wird die Variable mit dem angegebenen Typ erstellt und dann mit dem Wert initialisiert.
Dieser Deklarationstyp muss verwendet werden, wenn Sie eine Variable mit einem komplexen Typ wie ein Klassenattribut, eine Interprozessvariable oder eine globale Variable initialisieren. Wenn Sie den Typ in diesen Fällen nicht angeben, wertet der Interpreter den Ausdruck aus und leitet den Typ ab, während der Compiler nicht in der Lage ist, den Typ abzuleiten und stattdessen einen Variantentyp verwendet. Ein Beispiel:
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
Tauchen Sie also in die Dokumentation ein, erforschen Sie die unendlichen Möglichkeiten, die diese Funktion bietet, und erleben Sie aus erster Hand, wie diese bahnbrechende Neuerung die Zukunft Ihrer Codierungsbemühungen prägen wird.
Diskutieren Sie mit im 4D Forum.