/*
Title: Enumeration of Constants in Scala
Example with and without explicit values
*/
// -------------------------------
// Enum WITHOUT explicit values
// Scala automatically assigns ordinal positions
// -------------------------------
object Color extends Enumeration {
val Red, Green, Blue = Value
}
// -------------------------------
// Enum WITH explicit values
// Scala allows assigning custom integer IDs
// -------------------------------
object Status extends Enumeration {
val OK = Value(1, "OK")
val Warning = Value(5, "Warning")
val Error = Value(6, "Error")
val Critical = Value(10, "Critical")
}
object Main {
def main(args: Array[String]): Unit = {
println("Enum without explicit values:")
println("Red = " + Color.Red.id)
println("Green = " + Color.Green.id)
println("Blue = " + Color.Blue.id)
println("\nEnum with explicit values:")
println("OK = " + Status.OK.id)
println("Warning = " + Status.Warning.id)
println("Error = " + Status.Error.id)
println("Critical = " + Status.Critical.id)
}
}
/*
run:
Enum without explicit values:
Red = 0
Green = 1
Blue = 2
Enum with explicit values:
OK = 1
Warning = 5
Error = 6
Critical = 10
*/