Enumeration types are used to define a set of named constants. Kotlin, same as Java has an enumeration type, the enum class. Let's say that you want to define a type that represents all months in a year. Yes, you could create a normal class with one property, month name, which is of String type. But, then you would have to guard against invalid month name assignments and throw exceptions in such cases. The class would be error-prone and users of your class wouldn't be happy. This is a perfect use case for the enum class, and here is how you would define an enum type to represent all the months of the year:
enum class Month {
JANUARY,
FEBRUARY,
MARCH,
APRIL,
MAY,
JUNE,
JULY,
AUGUST,
SEPTEMBER,
OCTOBER,
NOVEMBER,
DECEMBER
}
Now you can't have invalid months, and if you want to assign a month type to a variable,...