/**
- 模式匹配 */ case class Class1(param1: String, param2: String)
case class Class2(param1: String)
object Case { def main(args: Array[String]) { //通过模式匹配进行条件判断 val test1: String = "1" val result1 = test1 match { case "1" => { "one" } case "2" => "two" case _ => "other" } println(result1)
1//通过模式匹配进行条件判断,可自定义条件 2val test2: Int = 1; 3val result2 = test2 match { 4 case i if i + 1 == 2 => "one" 5 case i if i + 1 == 3 => "tow" 6 case _ => "error" 7} 8println(result2) 9 10//通过模式匹配进行类型条件判断 11val t3 = 1 12println(Test3(t3)) 13 14//通过模式匹配进行类型条件判断 15val t4 = "1" 16println(Test3((t4))) 17 18//通过模式匹配进行类的判断与执行 19val test5 = Class1("1", "2") 20ClassMatch(test5) 21 22val test6 = Class2("3") 23ClassMatch(test6)
}
def ClassMatch(classTest: Any): Unit = { classTest match { case Class1(param1, param2) => { println("Class1:" + param1 + "_" + param2) } case Class2(param1) => { println("Class2:" + param1) } case _ => println("error") } }
def Test3(data: Any): String = { data match { case x: Int => "Int" case x: String => "String" case _ => "unkown" } } }