class DataFramework
case class ComputationFramework(name:String ,popular : Boolean) extends DataFramework
case class StorageFramework(name:String ,popular : Boolean) extends 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)
}
}
}
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)
}
}
}