枚举用于以编程语言表示一组命名常量的目的。有关枚举的信息,请参见C中的枚举(或枚举)和Java中的枚举。 Scala提供了一个Enumeration类,我们可以对其进行扩展以创建我们的枚举。
// 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}")
}
}
输出:
Main Movie Genres = Movies.ValueSet(Thriller, Horror, Comedy, Romance)
枚举的重点:
- 在Scala中,没有像Java或C那样的enum关键字。
- Scala提供了一个Enumeration类,我们可以对其进行扩展以创建我们的枚举。
- 每个枚举常量都代表一个枚举类型的对象。
- 枚举值定义为评估的val成员。
- 当我们扩展Enumeration类时,很多函数都被继承了。 ID是其中之一。
- 我们可以迭代成员。
// 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")
// Mian method
def main(args: Array[String])
{
println(s"The third value = ${Main.third}")
}
}
输出:
The third value = Comedy
在上面的示例中,Main.third是打印枚举的特定元素。
// 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}")
}
}
输出:
ID of third = 2
在上面的示例中,Main.third.id是打印枚举中任何元素的默认ID。
// 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
}
}
}
输出:
Favourite type of Movie = Comedy
这些值按照我们设置的ID的顺序打印。这些ID的值可以是任何整数。这些ID不必以任何特定的顺序排列。
// 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}")
}
}
输出:
Movie Genres = Movies.ValueSet(Comedy, Horror, Thriller, Romance)
参考: https : //www.scala-lang.org/api/current/scala/Enumeration.html