Scala pattern matching programming and Scala pattern matching programming operations in Spark source code


class DataFramework
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("Spark1", 3)
     getMatchType(100.12)
    
     getMatchCollection(Array("12"))
    
     getBigDataType(ComputationFramework("Spark" ,true))
   }
  
   def getSalary(name:String,age:Int){
     name match{
       case "Spark" => println("Spark String")
       case "Scala" => println("Scala String")
       case _ if name == "Hadoop" => println("Hadoop -----")
       case _name if age >5 => println("name:"+ name +" age:"+age)
       case _ =>println("others String")
     }
   }
  
   def getMatchType(msg:Any){
     msg match{
       case i : Int => println("Integer")
       case s : String => println("String")
       case dd : Double => println("Double")
       case array : Array[Int] => println("Array")
       case _  => println("other---")
     }
   }
    
   /**
    * 集合模式匹配
    */
     def getMatchCollection(msg:Array[String]){
      msg match{
      case Array("Scala") => println("one element")
      case Array("Scala","Java") => println("two element")
      case Array("Spark",_*) => println("Many elemens begin with spark")
      case _  => println("other---")
      }
     }
    
    
     /**
      * class 模式匹配
      */
    
     def getBigDataType(data:DataFramework){
       data match{
         case ComputationFramework(name,popular) => println(" ComputationFramework  name: "+ name + " popular: "+ popular)
         case StorageFramework(name,popular) => println("StorageFramework name: "+ name + " popular: "+ popular)
        
       }
     }
      
  
}

Guess you like

Origin blog.csdn.net/superiorpengFight/article/details/54613456