大数据系列修炼-Scala课程30
2016-09-16 13:28
411 查看
大数据系列修炼-Scala课程30
核心内容:
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结合的过程当中,我们可以使用变量@的方式来引用当前匹配到的对象.
实例程序:
运行结果:
核心内容:
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课程22
- 大数据系列修炼-Scala课程45
- 大数据系列修炼-Scala课程05
- 大数据系列修炼-Scala课程90
- 大数据系列修炼-Scala课程104
- 大数据系列修炼-Scala课程23
- 大数据系列修炼-Scala课程36
- 大数据系列修炼-Scala课程66
- 大数据系列修炼-Scala课程09
- 大数据系列修炼-Scala课程13+14
- 大数据系列修炼-Scala课程91
- 大数据系列修炼-Scala课程26
- 大数据系列修炼-Scala课程53
- 大数据系列修炼-Scala课程04
- 大数据系列修炼-Scala课程05
- 大数据系列修炼-Scala课程92
- 大数据系列修炼-Scala课程33
- 大数据系列修炼-Scala课程37
- 大数据系列修炼-Scala课程54
- 大数据系列修炼-Scala课程06