Pergunta

Dada a seguinte chamada de função em C:

fooFunc( barFunc(), bazFunc() );

A ordem de execução de barFunc e BazFunc não é especificado, então barFunc() pode ser chamado antes bazFunc() ou bazFunc() antes da barFunc() dentro C.

Faz Java Especifique uma ordem de execução de expressões de argumento da função ou como C Isso não é especificado?

Foi útil?

Solução

De Especificação da linguagem Java (em expressões):

15.7.4 Listas de argumentos são avaliadas da esquerda para a direita

Em um método ou invocação de construtor ou expressão de criação de instância de classe, as expressões de argumento podem aparecer dentro dos parênteses, separados por vírgulas. Cada expressão de argumento parece estar totalmente avaliada antes de qualquer parte de qualquer expressão de argumento à sua direita.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top