Я всегда задавался вопросом, может ли, вообще говоря, объявлять переменную выброса перед циклом, а не повторять внутри цикла, делает любую (производительность) разницу? A (совершенно бессмысленный) пример в Java:
a) декларация перед циклом:
double intermediateResult;
for(int i=0; i < 1000; i++){
intermediateResult = i;
System.out.println(intermediateResult);
}
b) декларация (неоднократно) внутри цикла:
for(int i=0; i < 1000; i++){
double intermediateResult = i;
System.out.println(intermediateResult);
}
Какой из них лучше, a или b?
Я подозреваю, что повторное объявление переменной (пример b) создает больше накладных расходов в теории, но эти компиляторы достаточно умны, так что это не имеет значения. Пример b имеет то преимущество, что он более компактен и ограничивает область действия переменной до того места, где она используется. Тем не менее, я склонен кодировать в соответствии с примером a.
Изменить: Меня особенно интересует случай Java.