Сопоставление с образцом (pattern matching) — сильный механизм языков программирования, который, к сожалению, встречается не так часто. Причём, как в коде разработчиков, так и в поддержке со стороны самого языка.
Разработчики на функциональных языках используют этот механизм довольно часто, потому что у них вообще многое определяется статически через правильный подход к системе типов. Разработчики же на императивных языках очень любят огромные многоуровневые ветвления. Есть даже такое понятие «Спагетти-код» — раньше его применяли к коду, перегруженному операторами перехода, но в современном виде это скорее об избытке операторов условия.
Pattern matching позволяет накладывать на объекты некоторый трафарет и смотреть, попадают ли они под него. Это не только выглядит лаконичнее и короче, чем дерево условий, но ещё и понятнее с точки зрения восприятия человеком: вот у нас заказ содержит более 10 элементов и при этом стоит более 1000 долларов, значит делаем на него скидку 10 центов. При этом трафарет работает как сортировщик монеток: самая маленькая проваливается в первый паз, следующая по размеру в следующий итд, применение условий идёт сверху вниз. Есть и неявный плюс: такой подход автоматически провоцирует разработчиков проводить проверку на null. Ведь null не может подходить под трафарет «содержит более 10 товаров».
К счастью, в C# этот механизм в последних версиях активно развивают и совершенствуют. И это одно из многочисленных преимуществ C# над Java.
#dev
If you have $10 in your wallet and no debt, you have more wealth than 25% of Americans.
Not because you’re rich… but because debt has so many people buried.
A reminder that sometimes, financial peace isn’t about how much you have—
It’s about how little you owe. 💡
Stay grounded. Stay grateful ❤️
#Countries
🔔@Everything_Science
Chinese government takes its officials and members of their families on prison tours on a regular basis to give officials an introduction to what awaits them if they should engage in corruption.
The tours include meet-and-greets with former government officials who were caught for corruption.
#Countries
🔔@Everything_Science
In Finland, the official World Wife-Carrying Championships have been held since 1992. In this competition, men carry their wives as fast as possible through a long obstacle course. In the end, the winner gets a beer for his wife's weight.
#Countries
🔔@Everything_Science
🌍 Monaco is the most densely populated country on Earth, with over 25,000 people per square kilometer. This tiny city-state squeezes more residents into each square mile than anywhere else. ✨
#population⚡#density⚡#Monaco⚡#countries⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
https://django-localflavor.readthedocs.io/en/latest/
#django- #localflavor is a collection of assorted pieces of code that are useful for particular #countries or #cultures. These are called the “local flavor” add-ons and live in the localflavor package.
🇿🇦🌍South Africa is the 25th largest country in the world.
It borders Namibia, Botswana, Zimbabwe, Mozambique, Eswatini (formerly Swaziland), and Lesotho.
🌊 On the west, South Africa is washed by the Atlantic Ocean, while to the south and southeast it is bordered by the Indian Ocean.
📏 Its area is about 1.21 million sq. km — roughly twice the size of France or three times the size of Germany.
🏞 The country consists of nine provinces.
#Geography#SouthAfrica#Africa#Countries#Facts#DidYouKnow
Lesson 20 of my Uzbek self-study course with audio is here! Learn how to say countries, nationalities and languages in Uzbek. The lesson includes exercises, tables, a crossword puzzle and clear grammar explanations.
https://yep.uz/en/2025/09/lesson-20-countries-nationalities-languages-uzbek/
#uzbeklanguage#learnuzbek#uzbeklesson#languages#nationalities#countries#selfstudy#languagelearning