Сопоставление с образцом (pattern matching) — сильный механизм языков программирования, который, к сожалению, встречается не так часто. Причём, как в коде разработчиков, так и в поддержке со стороны самого языка.
Разработчики на функциональных языках используют этот механизм довольно часто, потому что у них вообще многое определяется статически через правильный подход к системе типов. Разработчики же на императивных языках очень любят огромные многоуровневые ветвления. Есть даже такое понятие «Спагетти-код» — раньше его применяли к коду, перегруженному операторами перехода, но в современном виде это скорее об избытке операторов условия.
Pattern matching позволяет накладывать на объекты некоторый трафарет и смотреть, попадают ли они под него. Это не только выглядит лаконичнее и короче, чем дерево условий, но ещё и понятнее с точки зрения восприятия человеком: вот у нас заказ содержит более 10 элементов и при этом стоит более 1000 долларов, значит делаем на него скидку 10 центов. При этом трафарет работает как сортировщик монеток: самая маленькая проваливается в первый паз, следующая по размеру в следующий итд, применение условий идёт сверху вниз. Есть и неявный плюс: такой подход автоматически провоцирует разработчиков проводить проверку на null. Ведь null не может подходить под трафарет «содержит более 10 товаров».
К счастью, в C# этот механизм в последних версиях активно развивают и совершенствуют. И это одно из многочисленных преимуществ C# над Java.
#dev
#ingles
🇬🇧🇺🇲
Si estas interesado en aprender inglés, puedes acceder a nuestro grupo Repo-Ingles
- Aprende a hablar ingles como un nativo.
- Escuela de Platzi
- Curso de Ingles avanzado para Developers
- Ingles desde cero
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
¿Que puede hacer este bot?
@GroupGeoLimiter_Bot
Restrinja el acceso a su grupo según la ubicación.
¡Prohibir a todos los usuarios de los continentes, países, regiones o incluso ciudades que elija!
Idioma: #Ingles
#Administración#Grupo
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@TGRename_Bot
Este Bot te puede ayudar a renombrar archivos de Telegram.
Idioma: #Ingles
#Renombrar#Archivo
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@tiktiktokrobot
Sube videos o fotos a TikTok. Intercambia con gustos y disgustos. Aquí somos todos los que queremos comunicarnos, conocernos, ayudar, apoyar, hacer amigos, compartir éxitos y positivos
Idioma: #Ingles#Ruso
#TikTok#entretenimiento
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@ControllerBot
Este bot puede ayudarte a administrar los canales de Telegram.
Idioma: #Ingles
#Administración#administrar#canal
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@ForceSubscribeRobot
Obliga a los miembros del grupo a unirse a un canal específico antes de enviar mensajes en el grupo.
Idioma: #Ingles
#Administración#Canal#Subscripción
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@AkiTGBot
Akinator puede leer tu mente como por arte de magia y decirte en qué personaje estás pensando, con solo hacer algunas preguntas. Piensa en un personaje real o ficticio y Akinator intentará adivinar quién es.
Idioma: #Ingles
#Entretenimiento#juego#adivinar
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@WateryBot
El bot te recordará cuando necesites beber agua.
Idioma: #Ingles
#Herramienta#útil#agua#recordatorio
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@imagereaderbot
Extrae el texto de una imagen que le envíes (uso gratuito)
Idioma: #Ingles
#Herramienta#útil#Imagen#Texto#Extracción
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@picaibot
Este Bot tiene una IA que hará una reconstrucción de una selfie que le envíes convirtiéndola en una obra de arte, como el ejemplo de la foto.
Idioma: #Ruso#Ingles
#IA#Selfie#Editor#Foto
( Visto en: @BotsGram_Cu )
¿Que puede hacer este bot?
@VoiceShazamBot
Este bot reconoce la música de un mensaje de voz y carga la versión completa de la pista directamente en Telegram, le permite encontrar información sobre ella y también escucharla en Apple Music o YouTube.
Idioma: #Ingles
#Herramienta#Musica#Voz
#Mensaje#Buscar
( Visto en: @BotsGram_Cu )