Enumeration in Scala

21 Oct, 2021
An enumerations serve the purpose of representing a group of named constants in a programming language. Refer Enumeration (or enum) in C and enum in Java for information on enumerations. Scala provides an Enumeration class which we can extend in order to create our enumerations. Declaration of enumerations in Scala 
Scala
// A simple scala program of enumeration // Creating enumerationobject Main extends Enumeration{    type Main = Value         // Assigning values    val first = Value("Thriller")    val second = Value("Horror")    val third = Value("Comedy")    val fourth = Value("Romance")         // Main method    def main(args: Array[String])    {        println(s"Main Movie Genres = ${Main.values}")    }}
Main Movie Genres = Movies.ValueSet(Thriller, Horror, Comedy, Romance)
 
  Important points of enum :  
In Scala, there is no enum keyword unlike Java or C.
Scala provides an Enumeration class which we can extend in order to create our enumerations.
Every Enumeration constant represents an object of type Enumeration.
Enumeration values are defined as val members of the evaluation.
When we extended the Enumeration class, a lot of functions get inherited. ID is one among the them.
We can iterate the members.
Printing particular element of the enumeration  
Scala
// Scala program Printing particular// element of the enumeration // Creating enumerationobject Main extends Enumeration{    type Main = Value         // Assigning values    val first = Value("Thriller")    val second = Value("Horror")    val third = Value("Comedy")    val fourth = Value("Romance")          // Main method    def main(args: Array[String])    {        println(s"The third value = ${Main.third}")    }}
The third value = Comedy
 
In above example, Main.third is printing particular element of the enumeration.   Printing default ID of any element in the enumeration  
Scala
// Scala program Printing default ID of// any element in the enumeration // Creating Enumerationobject Main extends Enumeration{    type Main = Value      // Assigning Values    val first = Value("Thriller") // ID = 0    val second = Value("Horror") // ID = 1    val third = Value("Comedy") // ID = 2    val fourth = Value("Romance") // ID = 3          // Main Method    def main(args: Array[String])    {        println(s"ID of third = ${Main.third.id}")    }}
ID of third = 2
 
In above example, Main.third.id is printing default ID of any element in the enumeration.  Matching values in enumeration  
Scala
// Scala program of Matching values in enumeration // Creating Enumerationobject Main extends Enumeration{    type Main = Value         // Assigning Values    val first = Value("Thriller")    val second = Value("Horror")    val third = Value("Comedy")    val fourth = Value("Romance")         // Main Method    def main(args: Array[String])    {        Main.values.foreach        {            // Matching values in Enumeration            case d if ( d == Main.third ) =>            println(s"Favourite type of Movie = $d")            case _ => None        }    }}
Favourite type of Movie = Comedy
 
  Changing default IDs of values The values are printed in the order of the ID set by us.These values of IDs can be any integer .These IDs need not be in any particular order. 
Scala
// Scala program of Changing// default IDs of values // Creating Enumerationobject Main extends Enumeration{    type Main = Value     // Assigning Values    val first = Value(0, "Thriller")    val second = Value(-1, "Horror")    val third = Value(-3, "Comedy")    val fourth = Value(4, "Romance")         // Main Method    def main(args: Array[String])    {        println(s" Movie Genres = ${Main.values}")    }}
Movie Genres = Movies.ValueSet(Comedy, Horror, Thriller, Romance)
 
  Reference: https://www.scala-lang.org/api/current/scala/Enumeration.html 
kashishsoda
Picked
Scala
Scala-Basics
Articles
Programming Language
Scala
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.