Если condition односоставной, иначе ебучая лапша
компилятору глубоко похер на это все. с его точки зрения все эквивалентные конструкции будут преобразованы в то же самое. хот 10 способов это написать выдумай. это делается чисто для читабельности кода.
и тут в тред врывается голанг :-(
return a if condition;
return b;
А тернарный оператор - не лучшая практика, у него плохая расширяемость и читаемость. Можно использовать только там, где будет ровно два варианта и расширения не предусматривается.
Например: return $err ? "Error: $err" : "OK";
return b;
А тернарный оператор - не лучшая практика, у него плохая расширяемость и читаемость. Можно использовать только там, где будет ровно два варианта и расширения не предусматривается.
Например: return $err ? "Error: $err" : "OK";
Синтаксический сахар по определению ставит в приоритет удобство применения, а не универсальность. Для своих задач замечательная у него читабельность.
return condition
? 'ok'
: 'error'
И все ок с тернарным оператором, просто правильно расставляй.
? 'ok'
: 'error'
И все ок с тернарным оператором, просто правильно расставляй.
Ты это вообще к чему? Я пишу о том, что тернарный оператор удобен только там, где не ожидается больше двух исходов. Если есть хоть небольшой шанс, что список условий и вариантов возврата вырастет, то лучше тернарным оператором не пользоваться, чтобы потом не переписывать.
Скорее наоборот. Отказываться надо если есть практически гарантия, что через 10 минут ты полезешь в этот кусок кода и будешь что-то дописывать. Преждевременная оптимизация в виде усложнения читабельности с закладкой на будущее - прямое нарушение YAGNI.
Но вообще говоря это далеко не самый проблемный вопрос, чтобы сидеть и думать "а надо ли". Думать дольше, чем переделать.
Но вообще говоря это далеко не самый проблемный вопрос, чтобы сидеть и думать "а надо ли". Думать дольше, чем переделать.
В идеальном мире это было бы так. Но я много раз видел, как тернарные операторы начинали разрастаться по схеме
return condition ? a : (condition2 ? (condition 3 ? b : c) : condition4 ? ... )...)
return condition ? a : (condition2 ? (condition 3 ? b : c) : condition4 ? ... )...)
И тут в игру врывается гремучее узконаправленное говно мамонта:
CHOOSE CASE smth
CASE 34 TO 99, IS > 559, 1, 5, 33
x = 'fuck yeah!'
CASE ELSE
x = 'nani?!'
END CHOOSE
CHOOSE CASE smth
CASE 34 TO 99, IS > 559, 1, 5, 33
x = 'fuck yeah!'
CASE ELSE
x = 'nani?!'
END CHOOSE
Я лично встречал:
if (condition1 == true) // и ещё версия с условием if (condition1 == condition2)
{
return true;
}
else
{
retrun false;
}
if (condition1 == true) // и ещё версия с условием if (condition1 == condition2)
{
return true;
}
else
{
retrun false;
}
Классический индусский код
Такое бывает, когда там раньше была дополнительная логика и/или вызовы логгирования, но потом их потрёрли, а код рефакторить не стали.
В том конкретном месте, где я это видел - это точно был изначальный код.
IfThen(condition, some_true, some_false); Делфи передаёт привет
Ууух бля, я вспомнил свои ущербные конечные автоматы на Verilog-е . Они все из таким макарон состоят.
Чтобы написать коммент, необходимо залогиниться