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

Практика на enum и sealed в Dart

Задачи на перечисления и закрытые иерархии с проверкой вариантов в коде.

Сделайте enum Level с константами low, mid и high. Дана переменная:

var lv = Level.mid;

Выведите имя константы строчными буквами.

Сделайте enum Color с полем hex: red - "f00", green - "0f0", blue - "00f". Выведите hex для Color.green.

Сделайте enum Op с константами plus и minus. Напишите функцию calc(int a, int b, Op op). Выведите результат для 7, 3 и Op.minus.

Дан следующий код:

sealed class Result {} class Ok extends Result { Ok(this.value); int value; } class Err extends Result { Err(this.code); int code; }

Напишите функцию describe(Result r): для Ok - строка "v=" и значение, для Err - "e=" и код. Выведите описание для Err(404).

Сделайте sealed class State с вариантами Idle и Work с полем step. Дана переменная:

State st = Work(2);

Через switch выведите "idle", "work" и номер шага или "?" для неизвестного варианта.

Сделайте enum Size с константами s, m и l. Дан список:

var sizes = [Size.s, Size.l, Size.m, Size.s];

Выведите число элементов Size.s.

Сделайте sealed class Expr с вариантами Num с полем v и Mul с полями a и b. Напишите функцию eval(Expr e). Выведите результат для Mul(Num(3), Num(4)).

Сделайте enum Dir с константами n, e, s и w. Сделайте sealed class Move с вариантами Step с полями dir и len и Stop. Дано движение Step(Dir.e, 5). Выведите имя направления и len, разделив пробелом.

Дан следующий код:

enum Role { employee, admin } bool canDelete(Role role) { return role == Role.admin; }

Выведите canDelete(Role.employee) и canDelete(Role.admin).

Сделайте sealed class Pay с вариантами Card с полем last4 и Cash. Дан список:

var ways = [ Cash(), Card("1234"), Card("9999"), ];

Выведите число вариантов Card в списке.

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