Annikangl
@Annikangl
Backend developer (PHP)

Чем отличается такой код?

Часто встречаю подобные фрагменты кода при использовании условных конструкций If. Интересно, чем отличается такой код:

if (<условие>) {
     return true;
} else {
    return false;
}


От такого кода

if (<условие>) {
     return true;
}
return false;
  • Вопрос задан
  • 155 просмотров
Решения вопроса 2
@bqio
https://bqio.github.io/
Ответ написан
Комментировать
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Помимо удобства, if else без раннего возврата управления может усложнить программу, тк может понадобиться следить за состоянием результата

https://refactoring.guru/ru/replace-nested-conditi...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
FanatPHP
@FanatPHP
Чебуратор тега РНР
ничем
Ответ написан
Комментировать
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Любой более менее вменяемый компилятор сгенерирует одинаковый машинный код для обеих этих конструкций.
Разница тут чисто в стиле и читабельности кода.

Во первом варианте, ИМХО, более выразительно видно, какие есть 2 варианта возвращаемых значения и что они выбираются по условию. Такой код мне нравится чуть больше. Однако, если помимо return в else-ветке есть много кода, то уже лишний уровень отступа будет уменьшать читаемость. В этом случае второй вариант кода будет предпочтительнее. Но это все вкусовщина и личное мнение.
Ответ написан
Комментировать
Конструкцией. В первом случае используется конструкция
if(){//когда условие истинно
}
else{//когда условие ложно
}
.Вовтором случае используется
if(){//когда условие истинно
}
//Код независящий от условия
, но в вашем случае разницы не будет так как return false; в обоих случаях работает одинаково.
Ответ написан
Комментировать
@necrodeflorator
Это называется guard clause. Если в ветке else что-то большее чем return false то имеет смысл использовать такую конструкцию чтобы избежать лишнего отступа. В вашем примере ничем не отличается.

Вообще правильнее было бы написать именно в этом случае
return <условие>;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы