Orden de ejecución de los parámetros de garantías en Java?
-
18-09-2019 - |
Pregunta
Dada la siguiente llamada a la función en C
:
fooFunc( barFunc(), bazFunc() );
El orden de ejecución de barFunc
y BazFunc
no se especifica, por lo barFunc()
puede ser llamado antes de bazFunc()
o bazFunc()
antes barFunc()
en C
.
¿Tiene Java
especificar una orden de ejecución de expresiones de argumento de función o C
gusta es que no especificado?
Solución
Desde el del lenguaje Java Specification (en expresiones):
15.7.4 listas de argumentos se evalúan de izquierda a derecha
En un método o constructor invocación o expresión de clase creación de la instancia, expresiones de argumento pueden aparecer los paréntesis, separados por comas. Cada expresión argumento parece ser evaluado completamente antes de cualquier parte de cualquier expresión argumento a su derecha.