говорят, что вам нужно закодировать sw в C++/java, в каком из двух способов ниже вы бы выбрали реализацию большинства функций?функции void без функции arg vs returing с argh
void function(){
//code which uses private/public class variables
//it modifies directly variable outside of the function
}
xyztype function(a,b,c,d){
//code which uses local variables and args
xyztype xyz;
return xyz;
}
Мой вопрос в терминах:
1. Performance
2. Good practice in terms of perfomance
Я не забочусь о читаемости/юзабилити или что-нибудь подобное. В школе мы были использованы для кодирования второго пути, но теперь я склонен использовать 9/10 раз первый метод. Очевидно, что локальные переменные быстрее, но что, если у меня есть 40 функций, действующих на 5 переменных? Устранение всего локально, возможно, может быть контрпродуктивным
Я не знаю никого в сообществе Java, который считает, что это имеет существенное влияние на производительность в обычном коде. Возможно, это может оказать влияние на код, который называется очень часто и критичен по производительности, но наилучшая практика говорит о том, что такая оптимизация должна быть выполнена после программирования и определения узкого места с измерениями. Вы всегда можете использовать первый способ написания Java-кода, но он будет восприниматься большинством членов сообщества Java, особенно если вы публикуете для него поля. – mm759