IvyScript und null

IvyScript ist die Scriptsprache die in Ivy auf Prozesselementen verwendet wird. Während IvyScript Java sehr ähnelt, gibt es subtile Unterschiede. Einer dieser Unterschiede ist das null Handling.

Schauen wir uns das erste Beispiel an.

Code Snippet 1: Was wird es ausgeben?

Wäre dies hier Java, wäre in.string == null true. Doch in IvyScript wird diese Bedingung false sein. Der Grund dafür ist das sogenannte Auto-Initialisieren von Variablen die null sind. Wenn auf eine Variable die null ist zugegriffen wird, dann wird diese mit einem Standard Wert initialisiert. Ein String der null ist, ist danach "", eine Number ist 0 und ein Boolean ist false.

Bei Ivy Datenklassen wird eine neue Instanz erstellt. Java-Objekte müssen es einen Default Konstruktor haben, sonst funktioniert die Auto-Initialisierung nicht.

Doch was ist wenn man das nicht will? Dazu kann man einfach # vor das Attribut schreiben.

Code Snippet 2: Variable nicht Auto-Initialisieren

Nun wir die Bedingung true sein.

Was ist, wenn man ein Objekt erhält, dass man nicht selber unter Kontrolle hat? Es könnte also sein, dass es schon Auto-Initialisiert ist. Das Objekt ist danach zwar nicht mehr null, aber trotzdem ist es nicht richtig initialisiert. Ein Beispiel ist, wenn ein Objekt per in.meinObjekt an einen Callable als Parameter mitgegeben wird. Das Objekt ist danach Auto-Initialisiert und in.#meinObjekt wird nicht mehr null sein.

Um dieses Problem zu lösen bietet IvyScript is initialized an.

Code Snippet 3: is initialized

Auf der ersten Zeile wird in.string Auto-Initialisiert. Würde man nun mit in.#string != null die Abfrage machen, so würde dies true zurück geben. Um zu testen, ob ein Objekt nicht Auto-Initialisiert wurde, kann man is initialized verwenden. In diesem Fall wird hier not initialized geloggt.
Über den Author: Heinrich Spreiter ist der Gründer von xpertivyhacker.ch. Kontaktieren Sie ihn auf Xing und Twitter

Melden Sie sich für den Xpert.ivy hacker Newsletter an und Sie erhalten immer die neusten Tutorials und Tricks zu Xpert.ivy sobald sie publiziert werden.

Ihre Email Adresse wird nur für diesen Newsletter verwendet und nicht an dritte weitergegeben.

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.