Scala中的枚舉
枚舉在編程中指的是命名的常量,在scala中提供了一個Enumeration類,我們可以擴展它以創建枚舉。
在scala中聲明枚舉
object Main extends Enumeration
{
type Main = Value
// 賦值
val first = Value("驚悚片")
val second = Value("恐怖片")
val third = Value("喜劇片")
val fourth = Value("浪漫片")
// 主方法
def main(args: Array[String])
{
println(s"主電影流派 = ${Main.values}")
}
}
結果:
主電影流派 = Main.ValueSet(驚悚片, 恐怖片, 喜劇片, 浪漫片)
重點
- scala 和java 或者是 c 語言不一樣,scala 中是沒有enum 關鍵字的。
- scala 中提供了枚舉類型,Enumeration 我們可以擴展它,從而創建和豐富我們自己的枚舉類。
- 每個枚舉常量表示一個Enumeration類型的對象。
- 枚舉值被定義爲不可變的類型 val
- 通過繼承和擴展enumeration 類,獲得和類似 ID 這樣的大量的方法。
- 可以通過迭代。去遍歷它的成員。
簡單的應用方法
object Main extends Enumeration {
type Main = Value
val 驚悚片, 恐怖片, 喜劇片, 浪漫片 = Value
def main(args: Array[String]): Unit = {
println(Main.values)
}
}
結果
Main.ValueSet(驚悚片, 恐怖片, 喜劇片, 浪漫片)
scala 中模式比配和枚舉類型結合
object Main extends Enumeration
{
type Main = Value
// Assigning Values
val first = Value("驚悚片")
val second = Value("恐怖片")
val third = Value("喜劇片")
val fourth = Value("浪漫片")
// 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 = 喜劇片