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

Поля и конструктор enum в Dart

У enum может быть конструктор с параметрами - как у обычного класса. Значения параметров задают отдельно для каждой константы в круглых скобках после ее имени:

enum Color { red(0xFF0000), green(0x00FF00), blue(0x0000FF); const Color(this.rgb); final int rgb; } print(Color.red.rgb);

Поля, объявленные в конструкторе enum, доступны у любой константы как у обычного объекта. Порядок констант в теле enum совпадает с порядком в values и с полем index:

enum Size { small(10), medium(50), large(200); const Size(this.maxItems); final int maxItems; } print(Size.medium.maxItems); print(Size.large.index);

Параметры конструктора можно комбинировать с обычными полями в теле enum, если одной константе нужна дополнительная логика инициализации:

enum Currency { usd("USD", "\$"), eur("EUR", "E"), rub("RUB", "R"); const Currency(this.code, this.sign); final String code; final String sign; } var c = Currency.eur; print("${c.sign} ${c.code}");

Объявите enum HttpStatus с полем code: ok - 200, notFound - 404, serverError - 500. Выведите код для HttpStatus.notFound.

Объявите enum Discount с полем percent: none - 0, sale - 10, mega - 30. Дана переменная:

var d = Discount.sale;

Выведите значение percent.

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