scala 中的枚舉類型

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 = 喜劇片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章