Какая наилучшая практика вы предпочитаете, код A или код B? Для кода A мне не нужно инициализировать переменную, но каждый раз, когда я вызываю getNum()
, мне нужно снова и снова ее повторять. Этого недостает в управлении памятью, читабельности, управлении кодами и удобстве использования. Сравните с кодом B, я просто определяю переменную num
для book.getNum()
и каждый раз, когда я хочу использовать book.getNum()
, я просто вызываю переменную num
. Это проблематично в реальном времени?
Код A:
if( book.getNum() != 0){
//----
}
Код B:
int num = book.getNum();
if( num != 0){
//----
}
если вы собираетесь повторно использовать это значение, тогда code B
лучше. Если вы хотите использовать это значение только один раз, тогда Code A
лучше.
Просто делайте все просто. Не вводите переменную, если в ней нет необходимости.
ОБНОВИТЬ:
В некоторых случаях вы можете ввести переменную для хранения значения сложного выражения, чтобы сделать ваш код более читаемым. Но для простых случаев, как вы описали, правильный подход правильный.
if( indexOf(num.getNum().toString()[0],'helloWorld') == 0 )
. Это позволяет вам назвать переменную, чтобы вы на самом деле знали, что вы получаете, а не нечитаемый оператор if
. Хотя для этого конкретного случая, я думаю, что нет никакой реальной разницы между A или B.
B для лучшей читаемости кода и обслуживания.
также легче проверить функцию, заменив вызов функции (getNum()) любым фиктивным значением.
подумайте о будущем, в будущем, возможно, вы захотите расширить этот код, и проще просто использовать num вместо getNum()...
Компилятор оптимизирует это. Оба способа по существу одинаковы.
Единственная ситуация, которую я предлагаю использовать в:
int num = book.getNum();
if( num != 0){
//----
}
когда book.getNum()
используется в следующем коде. Тот факт, что num
короче, чем book.getNum()
является преимуществом в этом случае, просто с точки зрения сделать код более читаемым.
A., поскольку в b вы добавляете еще одну переменную в память. , , , но это имеет значение только в очень больших приложениях по размеру.