Практика enum и sealed в Dart
Объявите enum Weekday с семью днями
недели.
Напишите функцию isWeekend(Weekday day):
для saturday и sunday верните
true, для остальных дней - false.
Выведите результат для Weekday.saturday.
Объявите enum OrderStatus с константами
NEW, PAID, SHIPPED
и DONE.
Дана переменная:
var status = OrderStatus.PAID;
С помощью switch для переменной
status выведите соответствующую
текстовую метку: NEW - "created",
PAID - "paid",
SHIPPED - "on way",
DONE - "finished".
Объявите enum Traffic с полем
limit: city - 60,
road - 90, highway - 110.
Выведите все пары "name:limit"
в порядке объявления, каждую с новой строки.
Объявите sealed class ApiResult:
Success с полем payload,
Failure с полем error.
Напишите функцию summary(ApiResult r):
для Success верните строку "ok "
и payload, для Failure - строку
"err " и error.
Выведите результат для
Failure(503).
Объявите sealed class Screen:
Loading как final class без полей,
Content с полем title,
Error с полем message.
Дано:
Screen screen = Content("Home");
С помощью switch для переменной
screen выведите заголовок экрана
или текст ошибки, для Loading выведите
"wait".
Объявите enum Channel с константами
email, sms и push.
Объявите sealed class Notification:
Sent с полями channel
и id,
Skipped как final class без полей.
Создайте Sent(Channel.push, 7)
и выведите имя канала и id в одной строке,
между ними один пробел.