在C
中给出以下函数调用:
fooFunc( barFunc(), bazFunc() );
未指定barFunc
和BazFunc
的执行顺序,因此barFunc()
可能会在bazFunc()
之前调用bazFunc()
或barFunc()
之前调用C
在Java
。
C
是否指定了函数参数表达式的执行顺序,或{{1}}是否未指定?
答案 0 :(得分:68)
来自Java Language Specification(表达式上):
15.7.4从左到右评估参数列表
在方法或构造函数调用中 或类实例创建表达式, 参数表达式可能出现在 括号,用逗号分隔。 每个参数表达式似乎都是 在任何部分之前完全评估 论证表达权在右边。