大資料系列修煉-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
相關文章
- 資料分析修煉指南
- Python開發系列課程彙總 - 課程大綱Python
- 大資料公開課系列課程第二季-趙強老師-專題視訊課程大資料
- 慕課網大資料開發工程師課程大資料工程師
- 好程式設計師大資料教程Scala系列之類程式設計師大資料
- 大資料應成為大學課程的重中之重大資料
- 大資料要學什麼?看看這份大資料課程大綱大資料
- 大資料系列 1:大資料技術發展歷程大資料
- Double Kill!! 資料聯邦修煉之路
- 大資料Scala系列之樣例類_Option_偏函式大資料函式
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 大資料——Scala擴充套件大資料套件
- 好程式設計師大資料教程分享Scala系列之閉包程式設計師大資料
- 好程式設計師大資料分享Scala系列之柯里化程式設計師大資料
- 好程式設計師大資料教程Scala系列之高階函式程式設計師大資料函式
- 學習大資料必須瞭解的大資料開發課程大綱大資料
- 免費課程 | 大資料系列免費視訊教程(Linux、Hadoop、Spark、Kylin、Hive等)大資料LinuxHadoopSparkHive
- 奈學教育《大資料架構師》課程大綱(1)大資料架構
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 雲端計算大資料學習路線課程大綱資料:hive入門操作大資料Hive
- 大資料入門課程:Hadoop和spark的效能比較大資料HadoopSpark
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象
- 好程式設計師大資料學習路線分享Scala系列之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型
- 雲端計算大資料學習路線課程大綱資料:hive內部函式大資料Hive函式
- 大資料入門到精通課程學習,大資料學習,你還得知道這些大資料
- 程式設計師內功修煉之資料結構程式設計師資料結構
- 好程式設計師大資料學習路線分享Scala系列之對映Map程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之基礎篇程式設計師大資料
- 好程式設計師大資料教程分享Scala系列之Option_偏函式_String程式設計師大資料函式
- java大資料最全課程學習筆記(5)--MapReduce精通(一)Java大資料筆記
- 大資料之Kafka-李強強-專題視訊課程大資料Kafka
- 資料庫課程作業筆記資料庫筆記
- Kotlin修煉指南Kotlin
- 前端修煉之路前端
- 好程式設計師大資料學習路線分享Scala系列之集合操作函式程式設計師大資料函式
- 好程式設計師大資料教程分享Scala系列之檔案以及正規表示式程式設計師大資料
- 好程式設計師大資料教程Scala系列之方法的巢狀和方法多型程式設計師大資料巢狀多型
- 阿里雲大資料認證——大資料Clouder專項技能認證課程:Quick BI企業報表製作-課堂筆記阿里大資料CloudUI筆記