Considere estes 2 tipos de implementação:
public int add(int x, int y) {
return mysteriousAdd(x, y);
}
public int add(int x, int y) {
int output = mysteriousAdd(x, y);
return output;
}
Um colega meu diz que a segunda implementação é melhor porque, durante a depuração, vemos a variável que mysteriousAdd
retorna e não é demais sobrecarregar a criação dessa variável extra na pilha. Eu acho que a primeira implementação é melhor e seu ponto não é tão válido, porque hoje a maioria dos compiladores pode mostrar qual é a resposta da função durante a depuração sem a variável extra e também estamos evitando a criação de variável extra na pilha.
A criação de variável de referência na pilha é uma operação barata? Qual dos 2 métodos acima você sugere que é melhor para codificação e por quê?
Respostas:
Se você comparar a saída assembly / bytecode / IL / etc de duas funções como essa, deverá encontrar as duas iguais. Todos os compiladores, com exceção da maioria das empresas, otimizarão o valor extra.
Portanto, qualquer consideração sobre desempenho / memória deve ser descartada.
Portanto, faça sua escolha em relação à legibilidade. No exemplo, não há realmente nenhum valor para identificar o valor de retorno antes de retornar. No entanto, se você estiver na parte inferior de um cálculo de 20 linhas ou algo assim, geralmente poderá valer a pena criar o valor nomeado antes de retornar, porque esse nome pode indicar ao leitor informações sobre o que o cálculo deve resultar.
fonte
result
(talvez abreviado). Esse nome realmente diz tudo.Demonstre em seu ambiente de programação que você pode ler o resultado da chamada de função sem uma variável tão fácil quanto a variável temporária. Estou usando o que considero um bom ambiente de codificação e não posso.
Então demonstre. Se você puder, seu colega aprendeu alguma coisa. Se você não pode, você aprendeu alguma coisa.
fonte