大資料系列修煉-Scala課程30
大資料系列修煉-Scala課程30
核心內容:
1、模式匹配高階實戰:巢狀的case class
1、模式匹配高階實戰:巢狀的case class |
1、在模式匹配中使用巢狀case class的原因:
1>因為我們的case class一般只能表述一個item,在我們進行模式匹配的過程中,當我們想表述某一類item的集合的時候,就需要
巢狀的case class
2、在模式匹配使用巢狀case class的過程中,item:Persion*的含義:
1>item表示Persion型別的成員
2>* 表示Persion型別的成員可以有多個
3、在模式匹配與巢狀的case class結合的過程當中,我們可以使用變數@的方式來引用當前匹配到的物件.
例項程式:
package IT03
//本程式主要是為了測試巢狀的case class和模式匹配的應用
abstract class Item {} //定義了一個抽象類
case class Book(description:String,price:Double) extends Item //定義了一個case class繼承了Item
case class Bundle(description:String,price:Double,item:Item*) extends Item //定義了一個case Bundle繼承了Item
//抽象類通常情況下是作為一個類族的最頂層的父類
abstract class Persion{}
case class Student(age:Int) extends Persion{} //定義了一個case class 繼承了Persion
case class Worker(age:Int,salary:Double,item:Persion*) extends Persion //定義了一個case class 繼承了Persion
//本節的知識類似於Java中的多型
object App8
{
def main(args:Array[String]):Unit=
{
def fun1(item:Item) = item match
{
case Book(_,price) => println("price is:" +"\t"+ price)
case Bundle(description,price,_*) => println("desc is:" + description + "price is:" + price)
case _ => println("OK!")
}
fun1(Book.apply("spark", 200.0))
fun1(Bundle.apply("spark",200.0, Book.apply("hadoop", 300.0))) //在這裡面巢狀了Book型別
println("--------------------")
def fun2(persion:Persion) = persion match
{
case Student(age) => println("age is:" + age)
case Worker(age,salary,aa @ Student(_)) => println(aa.age) //在模式匹配中使用@引用指向一個物件
}
fun2(Student(20))
fun2(Worker(20,200.0,Student(40)))
}
}
執行結果:
price is: 200.0
desc is:sparkprice is:200.0
--------------------
age is:20
40
相關文章
- 大資料系列修煉-Scala課程31大資料
- 大資料前置課程—Scala大資料
- 資料分析修煉指南
- 大資料公開課系列課程第二季-趙強老師-專題視訊課程大資料
- Python開發系列課程彙總 - 課程大綱Python
- 慕課網大資料開發工程師課程大資料工程師
- 大資料要學什麼?看看這份大資料課程大綱大資料
- 好程式設計師大資料教程Scala系列之類程式設計師大資料
- Double Kill!! 資料聯邦修煉之路
- 大資料系列 1:大資料技術發展歷程大資料
- 資料庫實戰:SQL Server系列網路課程資料集資料庫SQLServer
- 《大資料Spark商業案例與效能調優100課》全球獨家大資料課程大資料Spark
- 大資料應成為大學課程的重中之重大資料
- OCP課程16:SQL之處理大資料SQL大資料
- 分享Cloudera大資料培訓課程的資訊Cloud大資料
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 大資料Scala系列之樣例類_Option_偏函式大資料函式
- 大資料——Scala擴充套件大資料套件
- 學習大資料必須瞭解的大資料開發課程大綱大資料
- 企業級實戰大資料課程(一)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(二)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(三)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(四)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(五)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(六)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(七)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(八)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(九)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(十)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(十一)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(十二)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(十三)-尹成-專題視訊課程大資料
- 企業級實戰大資料課程(十四)-尹成-專題視訊課程大資料
- 奈學教育《大資料架構師》課程大綱(1)大資料架構
- 大資料環境下的關聯規則挖掘-趙修湘-專題視訊課程大資料
- 好程式設計師大資料教程分享Scala系列之閉包程式設計師大資料
- 好程式設計師大資料分享Scala系列之柯里化程式設計師大資料
- 好程式設計師大資料教程Scala系列之高階函式程式設計師大資料函式