Programmiererfreundliche Syntax für Klassenfunktionen und -methoden

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.

blank

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.