C
C++
C#
F#
Kotlin
Rust
#include >stdio.h> enum day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}; int main(void) { enum day today; // определяем переменную перечисления today = Thursday; // присваиваем ей одну из констант перечисления printf("Today: %d\n", today); }
#include <iostream> // определение enum class Day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}; int main() { Day today {Day::Thursday}; // переменная перечисления // или так //Day today = Day::Thursday; // вывод на консоль std::cout << "Today: " << static_cast<int>(today) << std::endl; }
Day today = Day.Thursday; // переменная перечисления // вывод на консоль Console.WriteLine($"Today: {today}"); // определение enum Day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
Отличительной чертой перечислений в F# является то, что им обязательно надо присвоить некоторые челочисленные значения:
// определение объединения type Day = | Monday = 1 | Tuesday = 2 | Wednesday = 3 | Thursday = 4 | Friday = 5 | Saturday = 6 | Sunday = 7 // переменная перечисления let today = Day.Thursday // вывод на консоль printfn $"{today}" // Thursday // получаем числовое значение printfn $"{int today}" // 4
В F# также есть дискриминированные объединения, которые предоставляют похожую функциональность, только их не надо сопоставлять с числовыми значениями:
// определение объединения type Day = | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday // переменная объединения let today = Thursday // вывод на консоль printfn $"{today}"
enum class Day{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } fun main() { val today: Day // определяем переменную перечисления today = Day.THURSDAY // присваиваем ей одну из констант перечисления println("Today: $today") }
// определение enum Day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday} fn main(){ let today: Day; // определяем переменную перечисления today = Day::Tuesday; // присваиваем ей одну из констант перечисления println!("Today: {}", today as i32); }