В мире программирования на 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, чтобы улучшить свой опыт программирования!