Сопоставление с образцом (pattern matching) — сильный механизм языков программирования, который, к сожалению, встречается не так часто. Причём, как в коде разработчиков, так и в поддержке со стороны самого языка.
Разработчики на функциональных языках используют этот механизм довольно часто, потому что у них вообще многое определяется статически через правильный подход к системе типов. Разработчики же на императивных языках очень любят огромные многоуровневые ветвления. Есть даже такое понятие «Спагетти-код» — раньше его применяли к коду, перегруженному операторами перехода, но в современном виде это скорее об избытке операторов условия.
Pattern matching позволяет накладывать на объекты некоторый трафарет и смотреть, попадают ли они под него. Это не только выглядит лаконичнее и короче, чем дерево условий, но ещё и понятнее с точки зрения восприятия человеком: вот у нас заказ содержит более 10 элементов и при этом стоит более 1000 долларов, значит делаем на него скидку 10 центов. При этом трафарет работает как сортировщик монеток: самая маленькая проваливается в первый паз, следующая по размеру в следующий итд, применение условий идёт сверху вниз. Есть и неявный плюс: такой подход автоматически провоцирует разработчиков проводить проверку на null. Ведь null не может подходить под трафарет «содержит более 10 товаров».
К счастью, в C# этот механизм в последних версиях активно развивают и совершенствуют. И это одно из многочисленных преимуществ C# над Java.
#dev
🇺🇸 Un homme âgé de 69 ans a tué par balle ses partenaires d’affaires au Texas, selon ABC.
Le tireur a ouvert le feu lors d’une réunion dans un centre commercial de la ville de Carrollton, faisant un mort et trois blessés. Plus tard, l’homme a abattu une autre personne dans son appartement.
#étatsunis#fusillade#victimes
🇺🇸 Au moins douze personnes ont été blessées dans une fusillade dimanche près du lac Arcadia dans l'Oklahoma, aux États-Unis, a rapporté la chaîne CBS News.
La chaîne KWTV-DT a indiqué plus tôt que la police avait trouvé quatre personnes présentant des blessures par balle à l’intérieur d’un véhicule.
#étatsunis#fusillade#victimes
🇺🇸 Des images de la fusillade à Virginia Beach.
Les faits se sont produits dans une rue après une altercation verbale entre deux groupes de jeunes. Au moins huit personnes ont été blessées, rapporte la chaîne ABC.
#étatsunis#fusillade#victimes
🇺🇸 Au moins douze personnes ont été blessées dans une fusillade dimanche près du lac Arcadia dans l'Oklahoma, aux États-Unis, a rapporté la chaîne CBS News.
Neuf blessés ont été transportés dans un centre médical de la capitale de l’État et trois autres vers un hôpital d’Edmond, ont précisé des responsables médicaux à la chaîne.
La chaîne KWTV-DT a indiqué plus tôt que la police avait trouvé quatre personnes présentant des blessures par balle à l’intérieur d’un véhicule.
Vidéo: Luke Brenner/X
#étatsunis#fusillade#victimes
🇹🇷 Une fusillade est survenue dans une école dans le sud-est de la Turquie, le tireur a été neutralisé, a rapporté la chaîne de télévision NTV. Quatre personnes ont été tuées, selon les autorités.
#turquie#fusillade#victimes
🇹🇷 Seize personnes ont été blessées lors d'une fusillade dans un établissement scolaire en Turquie, rapporte la chaîne de télévision TGRT.
L'assaillant a ouvert le feu de manière aléatoire dans la cour intérieure. Il a ensuite fait irruption dans le bâtiment, où il a continué à tirer. Certains élèves ont quitté l’établissement en sautant par les fenêtres.
L'assaillant, né en 2007, est décédé au cours de l'opération de police, a annoncé le gouverneur de la province de Sanliurfa, Hasan Sildak.
#turquie#fusillade#victimes
🇺🇦 La police nationale ukrainienne va mener une enquête administrative après que deux policiers ont fui les lieux d'une fusillade à Kiev, laissant des civils sans protection, a déclaré le ministre de l'Intérieur du pays, Igor Klimenko.
J'ai chargé le chef de la police nationale ukrainienne, Ivan Vygovski, de mener une enquête administrative sur les actions des policiers lors de l'attentat terroriste à Kiev et de fournir toutes les informations au Bureau d'enquête d'État,
a écrit M. Klimenko sur sa chaîne Telegram.
#ukraine#police#fusillade
🇧🇷 Un adolescent de treize ans a ouvert le feu dans une école située dans le nord-ouest du Brésil. Deux employés sont morts, plusieurs élèves ont été blessés, selon le site G1.
#brésil#fusillade#victimes
🇲🇽 Le nombre de blessés lors de la fusillade survenue sur le site archéologique de Teotihuacan, au Mexique, est passé à 13 personnes, a fait savoir le cabinet de sécurité mexicain.
#mexique#fusillade#victimes
🇷🇺Un étudiant a ouvert le feu dans le hall d'un établissement scolaire à Anapa. Il a été interpellé. Le bilan fait état d'un mort et de deux blessés, selon la chaîne Telegram de la Direction principale du ministère de l'Intérieur pour le territoire de Krasnodar.
D'après les premiers éléments, un étudiant de cet établissement a ouvert le feu aujourd'hui dans le hall d'un institut professionnel d'Anapa avec une arme non identifiée. Une personne est morte, deux personnes ont été blessées et reçoivent des soins. L'auteur présumé a été interpellé,
indique le communiqué.
#russie#fusillade#anapa
🇹🇭Un jeune homme a ouvert le feu dans une école dans le sud de la Thaïlande et a blessé plusieurs personnes, a rapporté le journal Khaosod.
Selon l’édition, le drame s'est produit dans la ville de Hat Yai, dans la province de Songkhla. La fusillade a fait des blessés, mais le nombre exact de victimes n'est pas connu. Selon les informations préliminaires, le suspect s'est introduit dans l'école peu avant la fin des cours et a pris en otage plus de 300 élèves et enseignants. Il est signalé que le tireur a 18 ans. Il a été interpellé.
#thaïlande#fusillade#bilan
🇺🇸 Un inconnu a ouvert le feu dans un centre commercial de l'État américain de Louisiane, rapporte Newsweek. Tout le monde a été évacué et aucun blessé n'est à déplorer.
#étatsunis#fusillade#louisiane