Menu
Coddy logo textTech

Использование 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, что предотвращает распространенные ошибки программирования и делает ваш код более надежным.

challenge icon

Задание

Легко

Создайте программу, которая управляет простой системой отслеживания задач, используя перечисления (enums) и переменные. Ваша задача:

  1. Определите перечисление с названием TaskStatus со следующими значениями: todo, inProgress, testing, completed и cancelled
  2. Создайте переменную с названием task1Status типа TaskStatus и присвойте ей значение TaskStatus.todo
  3. Создайте переменную с названием task2Status типа TaskStatus и присвойте ей значение TaskStatus.inProgress
  4. Создайте переменную с названием task3Status типа TaskStatus и присвойте ей значение TaskStatus.completed
  5. Выведите начальный статус всех задач в точном формате: Task 1 status: TaskStatus.todo
  6. Выведите начальный статус задачи 2 в точном формате: Task 2 status: TaskStatus.inProgress
  7. Выведите начальный статус задачи 3 в точном формате: Task 3 status: TaskStatus.completed
  8. Обновите task1Status на TaskStatus.inProgress
  9. Обновите task2Status на TaskStatus.testing
  10. Выведите обновленный статус задачи 1 в точном формате: Updated Task 1 status: TaskStatus.inProgress
  11. Выведите обновленный статус задачи 2 в точном формате: Updated Task 2 status: TaskStatus.testing
  12. Выведите окончательный статус задачи 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. Выведите обновленные и окончательные статусы
  
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком