scala模式匹配使用示例
2016-12-05 11:10
344 查看
package com.sparktest /** * case class匹配 */ class DataFrameWork //case class 基本就是Java bean,在构造中传参即可 case class ComputationFramework(name: String, popular: Boolean) extends DataFrameWork case class StorageFramework(name: String, popular: Boolean) extends DataFrameWork object helloPatternMatch { def main(args: Array[String]): Unit = { getSalary("Hello", 6) getMatchType(100) getMatchCollection(Array("Scala")) getBigDataType(ComputationFramework("Spark", true)) getValue("Spark",Map("Spark"->"The hottest","Hadoop"->"The olddest")) } def getSalary(name: String, age: Int): Unit = { name match { case "Spark" => println("$150000/year") case "Hadoop" => println("$100000/year") case _ if name == "Scala" => println("$140000/year") //if 守卫 case _ if name == "Hadoop MapRudece" => println("$90000/year") case _name if age >= 5 => println("name:" + _name + "age:" + age + "$120000/year") //变量接受传递的值 case _ => println("$80000/year") } } /** * * 对类型进行匹配 */ def getMatchType(message: Any): Unit = { message match { case i: Int => println("Int") case s: String => println("String") case d: Double => println("Double") case array: Array[Int] => println("Array") case _ => println("Unkown type") } } /** * 对集合进行匹配 */ def getMatchCollection(message: Array[String]): Unit = { message match { case Array("Scala") => println("One Element") case Array("Scala", "Java") => println("Two Elements") case Array("Spark", _*) => println("More Elements bigins with Spark") case _ => println("Unknow Elements") } } /** * case class匹配 */ def getBigDataType(data: DataFrameWork): Unit = { data match { case ComputationFramework(name, popular) => println("ComputationFramework" + "name: " + name + " : " + " : popular :" + popular) case StorageFramework(name, popular) => println("StorageFramework" + "name: " + name + " : " + " : popular :" + popular) case _ => println("Some other type") } } /** * 对Option匹配 */ def getValue(key: String, content: Map[String, String]): Unit = { content.get(key) match { case Some(value) => println(value) case None => println("Not Found") } } }
相关文章推荐
- scala模式匹配的使用
- scala模式匹配的使用
- scala模式匹配的使用
- scala模式匹配的使用
- Scala 专题教程-Case Class和模式匹配(1):简单的示例
- scala Case Class和模式匹配(1):简单的示例
- Scala模式匹配(match)使用
- Scala School 笔记(三)--模式匹配与函数组合
- 《GOF设计模式》—解释器 (INTERPRETER)—Delphi源码示例:使用Flyweight模式共享终结符
- 《GOF设计模式》—中介者 (MEDIATOR)—Delphi源码示例:Colleague—Mediator通信(使用观察者模式)
- JSuggest自动匹配下拉框使用方法(示例代码)
- 快学Scala习题解答—第十四章 模式匹配和样例类
- 模板方法模式(TemplateMethod Pattern)(二):java中模板方法和钩子的使用示例
- 火车头使用正则匹配模式采集数据
- 动态代理的5模式使用示例和Mixin模式
- 动态代理的5模式使用示例和Mixin模式
- grep进行模式匹配时扩展符号+的使用
- 《GOF设计模式》—命令(COMMAND)—Delphi源码示例:参数化机制(使用命令模式)
- 晒网站:应用诺贝尔奖得主罗斯匹配算法的交友网站,具有更符合用户大网撒鱼心理的新颖用户使用模式
- 使用正则表达式的模式匹配