Open In App

Enumeration in Scala

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
 




// A simple scala program of enumeration
 
// Creating enumeration
object 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}")
    }
}

Output

Main Movie Genres = Movies.ValueSet(Thriller, Horror, Comedy, Romance)

  
Important points of enum : 
 

Printing particular element of the enumeration 
 






// Scala program Printing particular
// element of the enumeration
 
// Creating enumeration
object 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}")
    }
}

Output
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 program Printing default ID of
// any element in the enumeration
 
// Creating Enumeration
object 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}")
    }
}

Output
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 program of Matching values in enumeration
 
// Creating Enumeration
object 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
        }
    }
}

Output
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 program of Changing
// default IDs of values
 
// Creating Enumeration
object 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}")
    }
}

Output
Movie Genres = Movies.ValueSet(Comedy, Horror, Thriller, Romance)

  
Reference: https://www.scala-lang.org/api/current/scala/Enumeration.html
 


Article Tags :