Die Verwendung von $1-, $2- und $n-Variablen in Ihrem Code macht den Code nicht nur weniger lesbar, sondern kann auch zu Verwirrung führen, da das menschliche Gehirn sich nur schwer merken kann, was diese Variablen bedeuten. Die Lösung besteht darin, eine Variable mit einem verständlichen Namen zu erstellen und ihr den Wert von $1, $2 oder $n zuzuweisen.
4D v18 R5 hat eine gute Nachricht: Sie können jetzt Ihre Parameter bei der Deklaration benennen:
- einer Projektmethode,
- eines Triggers
- einer Datenbankmethode
- einer Formularmethode
- einem Konstruktor einer Klasse
- eine Funktion einer Klasse.
Schauen wir mal wie!
In 4D v18 R4 haben wir Ihnen eine neue Syntax zur Deklaration Ihrer Variablen gezeigt:
var $name : Text
var $birthdate : Date
var $file : 4D.File
Die neue Syntax für Methoden und Funktionen ist sehr ähnlich.
Neue Deklaration für Klassen
Fügen Sie nach dem Namen der Funktion Ihre verschiedenen Eingabeparameter durch ein Semikolon getrennt in Klammern ein:
Class Constructor($firstname: Text; $lastname: Text; $birthdate: Date)
This .lastName:=$lastname
This .firstName:=$firstname
This .birthdate:=$birthdate
Function setAdress ($streetNumber: Text; $streetName : Text; $city : Text)
This .streetNumber:=$streetNumber
This .streetName:=$streetName
This .city:=$city
Für den Ausgabeparameter fügen Sie einfach das „->“-Symbol hinzu, dann den Namen und den Typ wie beim Eingabeparameter.
Function getFullname -> $fullname: Text
$fullname :=This.firstName+""+Upper(This.lastName)
Function sendMessage ($text: Text) -> $message: Text
$message :="@"+This.firstname+": "+$text
Neue Deklaration für Methoden
Das gleiche Prinzip gilt für Methoden mit einem neuen Schlüsselwort: #DECLARE.
- Ein Beispiel mit einer „highlightRow“ Projektmethode:
#DECLARE($listboxName: Text; $rowNum: Integer)
LISTBOX SELECT ROW (*; $listboxName; $rowNum)
- Ein Beispiel mit der On Web Authentication Datenbank-Methode:
#DECLARE($url: Text; $header: Text; \
$BrowserIP : Text; $ServerIP: Text; \
$user : Text; $password: Text) \
->$RequestAccepted: Boolean
$entitySelection :=ds.User.query("login=:1"; $user)
// Check hash password...
// ...
Debugger
Der Name des Parameters ist auch im Aufrufkettenfenster des Debuggers sichtbar. Hier ist ein Beispiel mit einer Klassenfunktion:
Bonus
Wenn Sie einen zusätzlichen Grund brauchen, um die neue Syntax zu verwenden, sehen Sie sich das folgende Bild an. Ja! Die Deklaration der Funktion wird in der Statusleiste angezeigt, genau wie bei den 4D Befehlen.