Scala实战高手****第13课:Scala模式匹配实战和Spark源码鉴赏
package com.dt.spark.scala.bascis class Dataframework
case class Computerframework (name:String,popular:Boolean) extends Dataframework
case class Storgeframework (name:String,popular:Boolean) extends Dataframework object helloPatternMatch {
def main(args: Array[String]): Unit = {
// getSalary("hadoop")
// getSalary("flink")
// getSalary("scala") getSalary("scalasafdas",6)
getMatchType(100.0)
getMatchType("java")
getValue("spark",Map("spark"->"the hosttest!!")) getBigDataType(Computerframework("spark",true)) getMatchTypeCollection(Array("scala")) } def getSalary(name:String,age:Int){
name match{
case "spark" => println("$ 15k")
case "hadoop" => println("$ 12k")
case _ if name == "scala" => println("$ 14k")
case _ if name == "flink" => println("$ 13k")
case _name if age >= 5 => println(" name : "+ _name +" $ 16k") case _ => println("$ 8k")
}
} def getMatchType(msg:Any){
msg match {
case i: Int => println("integer")
case s:String => println("String")
case s:Double => println("Double")
case array:Array[Int]=> println("Array")
case _ => println("other type")
}
} def getMatchTypeCollection(msg:Array[String]){
msg match {
case Array("scala") => println("1 element")
case Array("scala","java")=> println("2 element")
case Array("spark",_*) => println("many element")
case _ => println("other element")
}
} def getBigDataType(data:Dataframework){
data match {
case Computerframework(name,popular) => println("name: "+name+" "+ popular)
case Storgeframework(name,popular) => println(name+" "+ popular)
case _ => println("other types")
} } def getValue(key:String,content: Map[String,String]){
content.get(key) match {
case Some(value) => println(value)
case None => println("none")
}
} } 结果 name : scalasafdas $ 16k
Double
String
the hosttest!!
name: spark true
1 element
Scala实战高手****第13课:Scala模式匹配实战和Spark源码鉴赏的更多相关文章
- Scala实战高手****第11课:Scala面向接口彻底实战和Spark源码鉴赏
		第一点: scala的接口trait中所有方法可以都被实现!! 这种情况一般会是一种工具方法的集合,例如接口 Logging! scala 多种继承用extends ... with .... 在老 ... 
- Scala实战高手****第9课:Scala类和对象彻底实战和Spark源码鉴赏
		scala类和对象 RDD中创建_sc和deps相比java更加的简洁. 在Spark的例如SparkContext.sqlSpark等全局成员在完成实例化. 在唯一实例的时候一般不会去使用伴生对象a ... 
- Scala实战高手****第10课:Scala继承彻底实战和Spark源码鉴赏
		isInstanceOf 和 asInstanceOf is用于判断 as用于转换,把父类类型转换成子类类型 getClass 具体找出类型 
- Scala实战高手****第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏
		本课内容1.Map和Tuple在Spark源码中的鉴赏2.Map和Tuple代码操作实战 ------------------------------------------------------- ... 
- Scala实战高手****第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
		/** * 函数式编程进阶: * 1.函数和变量一样作为Scala语言的一等公民,函数可以直接赋值给变量 * 2.函数更常用的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可,不需要名称 ... 
- Scala高手实战****第20课:Scala提取器、注解深度实战详解及Spark源码鉴赏
		Spark中的源码的提取器和注解 @SparkContext.scala @ volatile 线程专用 保证线程间共享内容的一致性 @volatile private var _dagSchedul ... 
- Scala实战高手****第7课:零基础实战Scala面向对象编程及Spark源码解析
		/** * 如果有这些语法的支持,我们说这门语言是支持面向对象的语言 * 其实真正面向对象的精髓是不是封装.继承.多态呢? * --->肯定不是,封装.继承.多态,只不过是支撑面向对象的 * 一 ... 
- Scala实战高手****第2课:Scala零基础实战入门的第一堂课及如何成为Scala高手
		val声明的不可变的战略意义:1.函数式编程中要求值不可变,val天然符合这一特性:2.在分布式系统中,一般都要求值不可变,这样才能够要求分布式系统的设计和实现,同时拥有更高的效率,val声明的内容都 ... 
- Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析
		本课内容1.Spark中Scala集合操作鉴赏2.Scala集合操作实战 --------------------------------------------------------------- ... 
随机推荐
- bzoj2424 [HAOI2010]订货  dp+单调性
			[HAOI2010]订货 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1311 Solved: 884[Submit][Status][Discu ... 
- TCP ------ RST的产生
			产生RST的几个原因 1.请求超时 有89.27两台主机.主机89向主机27发送了一个SYN,表示希望连接8888端口,主机27回应了主机89一个SYN表示可以连接.但是主机89莫名其妙的发送了一个R ... 
- linux 下查看网卡工作速率
			[root@hadoop058 ~]# mii-tool eth0: negotiated 100baseTx-FD, link ok 100M linux 下查看网卡工作速率 Ethtool是用于查 ... 
- LVM to increase and reduce 10G size for /data
			=======================increase10G for/data=============================(system env /dev/MongoData00 ... 
- windows10-seaslog安装笔记
			1.seasLog在windows下的安装 首先,要下载seasLog的dll文件,下载地址:http://pecl.php.net/package/SeasLog 选择对应你的系统和php版本的d ... 
- oracle有关游标的知识
			一:前言 今天我自己第二次写游标,我擦,觉得自己在数据库方面需要很大的提高啊.今天遇到三个问题,第一个是oracle数据库中的数据拆分的问题,这个我用regexp_substr来进行解决,第二个问题就 ... 
- 使用apache构建OpenStack内部yum源
			安装apache yum install httpd -y 上传openstack-mitaka-rpms.tar包,链接:http://pan.baidu.com/s/1kVA1wKv 密码:q26 ... 
- Windows下使用批处理实现启动关闭mysql_DOS/BAT
			cls @echo off :设置窗口字体颜色 color 0a :设置窗口标题 TITLE MySQL管理程序 by ThinkVenus call :checkAdmin goto menu :菜 ... 
- [POJ1637]混合图的欧拉回路判定|网络流
			混合图的欧拉回路判定 上一篇正好分别讲了有向图和无向图的欧拉回路判定方法 如果遇上了混合图要怎么做呢? 首先我们思考有向图的判定方法:所有点的出度=入度 我们可以先为无向边任意定一个向,算出此时所有顶 ... 
- 阻塞DOM
			DOM是解析后的HTML. 这些阻塞因素我们可以叫做 阻塞渲染的资源 ,例如 HTML.CSS(也包括web font)和 JavaScript. 请注意,图像是不会阻塞渲染的 ,所以如果有图像落在蓝 ... 
