Mathematische Alternativen
Mathematische Funktionen besitzen unterschiedliche Prioritäten und das einzige Argument wird idR. ohne Klammer übergeben.
Allerdings ist es möglich, Klammern zu verwenden. Die beiden nachfolgenden Zeilen sind somit identisch:
5 + 4 * 3 - 2.print
5 + ( 4 ) * ( 3 ) - ( 2 ).print
Die 4 ist das Argument der Funktion '+' vom Objekt '5'. Die 3 ist das Argument der Funktion '*' vom vorherigen Ergebnis, ...
Alternativen
Merke:
Für jede Funktion mit einem mathematischen Zeichen, existiert eine alphanumerische Entsprechung.
So existiert für Plus neben "+" auch ein ".add", für "*" ein ".mul", für "/" ein ".div", für "-" ein ".sub", ...
So kann auch folgendes geschrieben werden:
5.add( 4 ).mul( 3 ).sub( 2 ).print
Hier wird nun 25 ausgegeben, da alle Funktionen die selbe Priorität besitzen und nacheinander abgearbeitet werden.
Da nun alles die gleiche Priorität hat und die Argumente innerhalb von Klammern übergeben werden, lassen sich diese auch verschachteln:
5.add( 4.mul( 3 ) ).sub( 2.print )
Und schon ist die Ausgabe "2" und der Rückgabewert "15", wie bei den Beispielen oben.
Ebenso lassen sich alphanumerische Funktionen mit mathematischen Operatoren mischen. Aber, wichtig ... hier die verschiedenen Prioritäten beachten:
5.add( 4 ) * 3.sub( 2 ).print
Hier wird das "sub" der Multiplikation vorgezogen! Somit erfolgt eine Ausgabe von "1" da "3-2 = 1" und der Rückgabewert ist nun 9 da "(5+4)*(3-2) = 9"