👨🏻💻Тернарная условная операция (от лат. ternarius — «тройной») — реализованная во многих языках программирования операция компактного разветвления
Заменив кучу if-else одной строчкой, решить проблему поиска максимума из трех элементов, не создавая массива:
return (a > b)? ((a > c)? a : c) : (b > c)? b : c;
Мелочь, а приятно. Бокал кофе 🥃 за элегантность тернарного оператора.
Кстати, такое возможно не только в си-подобных язык программирование. Можно и в Python, к примеру.
Синтаксис тернарного в Python: a if condition else b
Реализация возможна такая:
def getMax(a, b, c):
return (a if (a > c) else c) if (a > b) else (b if (b > c) else c)
Также в Python можно индексировать кортеж:
(falseValue, trueValue)[bool(condition)]
Пример для двух переменных:
def getMax2(a, b):
return (b, a)[bool(a > b)]
Лично мне не очень нравится тернарный оператор в Python, т.к. рассматривать логику приходится с середины выражения. Хотя своей элегантностью и компактностью Python превосходит многие языки программирования. В си-подобных языках этот оператор более последователен и прост в понимании. В целом, эксперты программирования не советуют усложнять логику своих программ. Так как большинство сложных проектов делают несколько людей, то ваш код в первую очередь должен быть понятен для других людей. Поэтому не всегда нужно использовать замудренные конструкции языка.
❓А если вы их (лайфхаки и слишком мудрые конструкции ЯП) используете, то стоит ли писать причину этому в комментарии перед реализацией метода или процедуры ? Напишите ваше мнение в комментариях.