home.social

#pattern_matching — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pattern_matching, aggregated by home.social.

  1. [Перевод] Сопоставление с образцом на C#: объяснение и примеры

    За годы своего развития C# существенно эволюционировал; одна из самых мощных фич языка — это сопоставление с образцом ( pattern matching) . Работая недавно над небольшим хобби-проектом, я наткнулся на такую прекрасную строку кода C#. if (person is not null and { Age: > 18 }) {} Выглядит изящно. Откровенно говоря, она заставила меня призадуматься. Годами я писал проверки на null и свойства-аксессоры классическим образом: if (person != null && person.Age > 18) {} Функционально? Да. Удобочитаемо? Не особо. Безопасно? Спорно, особенно когда код становится сложнее. Я решил создать шорт YouTube об этом современном синтаксисе. Это небольшое забавное напоминание о том, что C# позволяет при помощи сопоставления с образцом комбинировать проверки на null и обращение к свойству в одно условие. Я понятия не имел, что это короткое видео приведёт к гораздо более глубокому исследованию, и покажет мне, насколько полезно и универсально сопоставление с образцом в современном C#. Эта фича повышает читаемость, уменьшает объём бойлерплейта и обеспечивает более выразительную обработку логики. В этой статье мы изучим различные типы образцов, поддерживаемых в C#, их работу и поймём, когда их использовать, на понятных примерах из реального мира.

    habr.com/ru/articles/907264/

    #pattern_matching #сопоставление_с_образцом #csharp

  2. Эволюция оператора switch в Java

    Наверное, есть только малая часть приложений, код в которых выполняются строго последовательно. Классический Hello World! как раз из таких. В таких случаях говорят, что у выполняющейся программы есть только один поток выполнения - флоу . Однако, подавляющее число приложений меняют свой поток выполнения в зависимости от внешних условий (контекста выполнения, переменных среды, значений пропертей) или внутренних (переменные, значения полей и т.д.). Для таких случаев в Java еще с самой первой версии, как и во остальных языках программирования, есть оператор if-else и его модификации. Давайте рассмотрим пример кода, в котором в зависимости от того, кем является член семьи, он делает какую-то обязанность по дому:

    habr.com/ru/articles/838890/

    #Java #switch #pattern_matching #switch_expressions #switch_statements #ifelseswitch

  3. [Перевод] Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3

    Сопоставление шаблонов (pattern matching) и исчерпывающие переключатели (exhaustive switches) объединяются для создания функциональных моделей данных, которые легко сочетаются с объектно-ориентированным ядром Dart. 💪

    habr.com/ru/articles/802165/

    #flutter #dart #oop #algebraic_data_types #sealed_классы #functional_style #pattern #pattern_matching #switch #функциональная_парадигма