Reihenfolge der Ausführung von Parametern Garantien in Java?
-
18-09-2019 - |
Frage
Angesichts der folgenden Funktionsaufruf in C
:
fooFunc( barFunc(), bazFunc() );
Die Reihenfolge der Ausführung von barFunc
und BazFunc
ist also nicht angegeben, also barFunc()
kann vorher angerufen werden bazFunc()
oder bazFunc()
Vor barFunc()
in C
.
Tut Java
Geben Sie eine Reihenfolge der Ausführung von Funktionsargumentausdrücken an oder mögen C
Ist das nicht spezifiziert?
Lösung
Von dem Java -Sprachspezifikation (über Ausdrücke):
15.7.4 Argumentlisten werden von links nach rechts bewertet
In einer Methode- oder Konstruktor -Aufruf oder Ausdruck von Klasseninstanzen können Argumentausdrücke innerhalb der Klammern erscheinen, die durch Kommas getrennt sind. Jeder Argumentausdruck scheint vor einem Teil eines Argumentausdrucks vollständig bewertet zu werden.