Использование Enums в переменных
Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 60 из 65.
Теперь, когда вы знаете, как определять перечисления (enums), давайте узнаем, как на самом деле использовать их в ваших программах. Как только вы создали перечисление, вы можете объявлять переменные этого типа перечисления и присваивать им конкретные значения.
Чтобы объявить переменную типа enum, вы указываете имя перечисления, за которым следует имя переменной, точно так же, как и с любым другим типом данных:
Weather todayWeather = Weather.sunny;Обратите внимание, как вы обращаетесь к значениям перечисления, используя точечную нотацию: Weather.sunny. Это сообщает Dart, что вам нужно значение sunny из перечисления Weather.
Вы можете изменить значение переменной на любое другое допустимое значение перечисления:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;Преимущество использования переменных enum заключается в том, что Dart гарантирует возможность присвоения только допустимых значений перечисления. Вы не сможете случайно присвоить "stormy" или любое другое недопустимое значение переменной Weather, что предотвращает распространенные ошибки программирования и делает ваш код более надежным.
Задание
ЛегкоСоздайте программу, которая управляет простой системой отслеживания задач, используя перечисления (enums) и переменные. Ваша задача:
- Определите перечисление с названием
TaskStatusсо следующими значениями:todo,inProgress,testing,completedиcancelled - Создайте переменную с названием
task1StatusтипаTaskStatusи присвойте ей значениеTaskStatus.todo - Создайте переменную с названием
task2StatusтипаTaskStatusи присвойте ей значениеTaskStatus.inProgress - Создайте переменную с названием
task3StatusтипаTaskStatusи присвойте ей значениеTaskStatus.completed - Выведите начальный статус всех задач в точном формате:
Task 1 status: TaskStatus.todo - Выведите начальный статус задачи 2 в точном формате:
Task 2 status: TaskStatus.inProgress - Выведите начальный статус задачи 3 в точном формате:
Task 3 status: TaskStatus.completed - Обновите
task1StatusнаTaskStatus.inProgress - Обновите
task2StatusнаTaskStatus.testing - Выведите обновленный статус задачи 1 в точном формате:
Updated Task 1 status: TaskStatus.inProgress - Выведите обновленный статус задачи 2 в точном формате:
Updated Task 2 status: TaskStatus.testing - Выведите окончательный статус задачи 3 в точном формате:
Final Task 3 status: TaskStatus.completed
Ваша программа должна демонстрировать правильное определение перечисления с использованием ключевого слова enum, объявление переменных с типами перечислений, доступ к значениям перечисления с помощью точечной нотации и обновление переменных перечисления. Обязательно следуйте соглашениям об именовании Dart, где имя перечисления начинается с заглавной буквы, а значения перечисления пишутся строчными буквами.
Шпаргалка
Чтобы объявить переменную типа enum, укажите имя перечисления, а затем имя переменной:
Weather todayWeather = Weather.sunny;Доступ к значениям перечисления осуществляется с помощью точечной нотации в формате EnumName.value:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;Dart гарантирует, что переменным перечисления можно присваивать только допустимые значения перечисления, что предотвращает некорректные присваивания и делает код более надежным.
Попробуйте сами
import 'dart:io';
// TODO: Определите здесь ваше перечисление TaskStatus
void main() {
// TODO: Напишите ваш код здесь
// 1. Создайте переменную task1Status и присвойте ей TaskStatus.todo
// 2. Создайте переменную task2Status и присвойте ей TaskStatus.inProgress
// 3. Создайте переменную task3Status и присвойте ей TaskStatus.completed
// 4. Выведите начальный статус всех задач
// 5. Обновите статусы задач по мере необходимости
// 6. Выведите обновленные и окончательные статусы
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей6Основы обработки ошибок
Что такое исключения?Блок 'try-catch'Перехват исключений с помощью 'on'Блок 'finally'Генерация исключенияИтоги: Безопасное деление9Перечисления (Enums)
Что такое Enums?Определение простого EnumИспользование Enums в переменныхEnums в операторах 'switch'Итоги — Светофор