TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #542 1.8K
Hola, Amigos! Сегодня обсудим pattern matching. Он сокращает boilerplate, улучшает код и повышает безопасность работы со state.

1. Деструктуризация с помощью паттернов

Пример с Records:


var user = ('Naman', 29);
var (name, age) = user;

print(name);
print(age);


2. Деструктуризация объектов

Есть класс:


class User {
final String name;
final int age;

User(this.name, this.age);
}


Можно извлечь свойства так:


var User(:name, :age) = user;


Это эквивалентно:


var name = user.name;
var age = user.age;


3. Pattern Matching в switch

Традиционный подход:


if (state is Success) {
final data = state.data;
}


Подход с pattern matching


switch (state) {
case Success(data: var data):
render(data);
case Loading():
showLoader();
case Error(message: var msg):
showError(msg);
}


4. Сопоставление коллекций

Паттерны умеют анализировать списки и map:


switch(list) {
case []:
print("Empty");
case [first, second]:
print(first);
}



switch(json) {
case {'status': 'ok', 'data': var d}:
process(d);
case {'status': 'error', 'message': var m}:
showError(m);
}


5. Guard-условия


switch(user) {
case User(age: var age) when age > 18:
print("Adult");
case _:
print("Minor");
}


А вы используете pattern matching?
  • 🔥 15
  • 👍 11
  • ❤ 6
  • 💯 1
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →