Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtOpEsES 78 of 113 menu
◀ ▶

switch по enum в Dart

Конструкция switch по значению enum перебирает известные компилятору константы. Если перечислены все члены enum, выражение считается исчерпывающим и default можно опустить:

enum Day { monday, tuesday, wednesday, thursday, friday, saturday, sunday } String label(Day day) { switch (day) { case Day.monday: return "start"; case Day.tuesday: return "mid"; case Day.wednesday: return "mid"; case Day.thursday: return "mid"; case Day.friday: return "end"; case Day.saturday: return "rest"; case Day.sunday: return "rest"; } } print(label(Day.friday));

Тот же switch может записывать результат в переменную. Для enum с полным набором веток тип результата выводится без default:

enum PortKind { http, https, ftp } var kind = PortKind.https; var scheme = switch (kind) { PortKind.http => "http", PortKind.https => "https", PortKind.ftp => "ftp", }; print(scheme);

Несколько констант можно обработать отдельными ветками case, если для них нужен один и тот же результат:

enum Day { monday, tuesday, wednesday, thursday, friday, saturday, sunday } bool isWeekend(Day day) { switch (day) { case Day.saturday: case Day.sunday: return true; case Day.monday: case Day.tuesday: case Day.wednesday: case Day.thursday: case Day.friday: return false; } } print(isWeekend(Day.sunday));

Объявите enum Season с константами spring, summer, autumn и winter. Напишите функцию isWarm(Season season): для summer и spring верните true, для остальных - false. Вызовите с Season.winter и выведите результат.

Объявите enum Role с константами guest, user и admin. Дано:

var role = Role.user;

С помощью switch для переменной role запишите в code число: guest - 0, user - 1, admin - 2. Выведите code.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить