Изучение возможностей выражений переключения в Dart: упростите свой код с помощью примеров

В мире программирования на Dart выражения переключателей — это мощные инструменты, которые могут упростить ваш код и сделать его более читабельным. Хотя операторы переключения существуют уже давно, выражения переключения были представлены в Dart 2.2 как более краткая и выразительная альтернатива. В этой статье мы углубимся в выражения переключателей и рассмотрим различные методы использования их функциональности. Так что хватайте чашечку кофе и начнем!

Метод 1: базовое выражение переключателя
Начнем с простого примера. Предположим, у нас есть переменная с именем day, которая представляет текущий день недели. Мы можем использовать выражение переключения для выполнения различных действий в зависимости от значения day:

String getWeekday(int day) {
  return day switch {
    1: 'Monday',
    2: 'Tuesday',
    3: 'Wednesday',
    4: 'Thursday',
    5: 'Friday',
    6: 'Saturday',
    7: 'Sunday',
    default: 'Invalid day',
  };
}
void main() {
  int currentDay = 3;
  String weekday = getWeekday(currentDay);
  print('Today is $weekday.');
}

Метод 2: использование нескольких вариантов
Выражения переключения могут обрабатывать несколько вариантов в одном ответе, что позволяет объединять похожие случаи и уменьшать дублирование кода:

String getCategory(int age) {
  return age switch {
    0, 1, 2: 'Infant',
    3, 4, 5: 'Toddler',
    6, 7, 8: 'Child',
    9, 10, 11, 12: 'Preteen',
    default: 'Teenager or older',
  };
}
void main() {
  int personAge = 7;
  String category = getCategory(personAge);
  print('This person belongs to the $category category.');
}

Метод 3: использование константных выражений
В Dart вы можете использовать константные выражения в качестве значений регистра в выражениях переключения. Это может быть полезно при работе с предопределенными константами или перечислениями:

enum Season { spring, summer, autumn, winter }
String getSeasonName(Season season) {
  return season switch {
    Season.spring: 'Spring',
    Season.summer: 'Summer',
    Season.autumn: 'Autumn',
    Season.winter: 'Winter',
  };
}
void main() {
  Season currentSeason = Season.summer;
  String seasonName = getSeasonName(currentSeason);
  print('The current season is $seasonName.');
}

Метод 4: использование нулевой безопасности
С введением нулевой безопасности в Dart выражения переключения можно использовать для обработки нулевых значений и предоставления запасного варианта:

String validateName(String? name) {
  return name switch {
    null: 'Name is null',
    '': 'Name is empty',
    default: 'Hello, $name!',
  };
}
void main() {
  String? username;
  String validationMessage = validateName(username);
  print(validationMessage);
}

Выражения переключения в Dart предлагают краткий и понятный способ управления потоком управления на основе различных значений. Используя выражения переключения, вы можете упростить код, уменьшить избыточность и улучшить общее качество кода. В этой статье мы рассмотрели различные методы использования выражений переключения, включая базовое использование, несколько регистров, константные выражения и нулевую безопасность. Так что вперед и начните включать выражения переключателей в свои проекты Dart, чтобы улучшить свой опыт программирования!