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

  

转载于:https://www.cnblogs.com/sunrunzhi/p/9996727.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值