Поданный следующий вызов функции C
:
fooFunc( barFunc(), bazFunc() );
Порядок выполнения barFunc
и BazFunc
не указан, таким образом, barFunc()
может быть назван прежде bazFunc()
или bazFunc()
прежде barFunc()
в C
.
Делает Java
укажите порядок выполнения выражений аргумента функции или как C
это является неуказанным?
Из Спецификации языка Java (по выражениям):
15.7.4 Списки аргументов оцениваются слева направо
При вызове метода или конструктора или класса выражение создания экземпляра, выражения аргументов могут появляться в круглых скобках, разделенных запятыми. Каждое выражение аргумента, по-видимому, полностью вычисляется перед любой частью любого { {1}} выражение аргумента справа.