nicht implementiert
siehe return.
Innerhalb einer Function
return gibt neutral zurück, um das folgende Konstrukt zu ermöglichen:
x = bla() || return false;
Sofern allen zu initialisierenden Rückgabeparametern ein Wert zugewiesen wurde, darf die Funktion verlassen werden. Wurde nicht allen Rückgabe-Parametern ein Wert zu gewiesen, so können die fehlenden Werte noch mit der return-Anweisung beschrieben werden. Wird nur ein Wert zurückgegeben, so kann return wie in C nur mit einem Wert aufgerufen werden.
return darf nur ohne Zuweisungen stehen, wenn alle Rückgabeparameter, die initialisiert werden müssen entweder im Functionscope an dieser Stelle initialisiert sind oder es keinen RÜckgabewert gibt.
code( Window * result=null ) MyOpenWin := { /* TODO: Implement */ return; }
code( Window * result ) MyOpenWin := { /* TODO: Implement */ return null; }
code MyOpenWin := { /* TODO: Implement */ return; }
return arbeitet grundsätzlich wie break für Schleifenscopes. Wenn man Funktionen innerhalb von Funktionen anlegen kann, so wäre es interessant ein Return auf die höher definierte Funktion ausüben zu können.
code( int ) main := { code( int; int a ) func := { if( main::a + a == 10 ) return from main ExitSuccess; return a + 1; } int a = 0; while( a : func( a )); print "Dies wird niemals aufgerufen\n"; }
Anmerkung: Der Beispielcode ist genau das, was man damit nicht machen sollte. Es sollte eine Möglichkeit sein, weitere Fragen in main() zu vermeiden und nicht die Schleife zu steuern.