Про web-разработку
Для программистов, фрилансеров, предпринимателей
Инструменты

Перечисления enum в Dart

Перечисления

Для создания перечисления, также известное как enumerator, в Dart используется ключевое слово enum. В нём перечисляются весь список элементов через запятую. К сожалению, делается это без возможности задания собственных индексов. Индекс в любом случае начинается с нуля.

enum Company{
    MICROSOFT,  // 0
    APPLE,      // 1
    GOOGLE      // 2
}

После этого, можно обращаться к элементам этого списка.

enum Company{
    MICROSOFT,  // 0
    APPLE,      // 1
    GOOGLE      // 2
}
void main(){
    print(Company.MICROSOFT);           // Company.MICROSFT
    print(Company.MICROSOFT.index);     // 0
}

Пример использования

Чаще всего перечисления используются для сравнения с какой-либо переменной.

enum Company{
    MICROSOFT,  // 0
    APPLE,        // 1
    GOOGLE      // 2
}

void main(){
    print( getOwnerName( Company.MICROSOFT ) ); // Bill Gates
    print( getOwnerName( Company.APPLE ) );     // Steve Jobs
    print( getOwnerName( Company.GOOGLE ) );    // Sergey Brin
}

String getOwnerName(Company company){
    switch(company){
        case Company.MICROSOFT: return 'Bill Gates';
        case Company.APPLE:     return 'Steve Jobs';
        case Company.GOOGLE:    return 'Sergey Brin';
    }
}

Циклы по enum в dart

Также можно пройтись циклом по значениям перечисления. Для этого надо обратиться к массиву значений списка values.

enum Company{
    MICROSOFT,  // 0
    APPLE,      // 1
    GOOGLE      // 2
}

void main(){
    Company.values.forEach((company){
        print( company.index.toString() + ". " + getOwnerName( company ) );
    });
    // 0. Bill Gates
    // 1. Steve Jobs
    // 2. Sergey Brin
}

String getOwnerName(Company company){
    switch(company){
        case Company.MICROSOFT: return 'Bill Gates';
        case Company.APPLE:     return 'Steve Jobs';
        case Company.GOOGLE:    return 'Sergey Brin';
    }
}

Поделиться:

Перечисления enum в Dart
Перечисления enum в Dart