Обложка канала

Репетитор IT mentor

2776 @mentor_it

Заметки репетитор по физике, математике, программированию. Разбор интересных задач, типичных ошибок и способов их решения.

Репетитор IT mentor

3 года назад
Открыть в
👨🏻‍💻Тернарная условная операция (от лат. 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 превосходит многие языки программирования. В си-подобных языках этот оператор более последователен и прост в понимании. В целом, эксперты программирования не советуют усложнять логику своих программ. Так как большинство сложных проектов делают несколько людей, то ваш код в первую очередь должен быть понятен для других людей. Поэтому не всегда нужно использовать замудренные конструкции языка. ❓А если вы их (лайфхаки и слишком мудрые конструкции ЯП) используете, то стоит ли писать причину этому в комментарии перед реализацией метода или процедуры ? Напишите ваше мнение в комментариях.