01. 匹配模式
字符串
object Demo1 {
def main(args: Array[String]): Unit = {
val arr = Array("java","scala","js","sql","css")
/*val i: Int = Random.nextInt(arr.length)
println(arr(i))*/
arr.map(e=>e match {
case "java" => "hls"
case "scala" => "hg"
case "js" => "hg"
case "sql" => "sg"
case _ => "zixue"
}).foreach(println)
}
}
样例类
abstract class Animal
case class Cat(name:String) extends Animal
case class Dog(name:String) extends Animal
case class Monkey(name:String) extends Animal
class CaseDemo01 {
def opt(arg:Animal) = arg match {
case Cat(_) => ("cat"+arg)
case Dog(_) => "dog"
case Monkey(_) => "monkey"
case _ =>
}
}
object CaseDemo01 {
def main(args: Array[String]): Unit = {
val cd = new CaseDemo01
println(cd.opt(Cat("xiaohau")))
}
}
abstract class Animal
case class Cat(name:String) extends Animal
case class Dog(name:String) extends Animal
case class Monkey(name:String) extends Animal
object CaseDemo02 {
def main(args: Array[String]): Unit = {
val arr: Array[Animal] = Array[Animal](Dog("小黑"),Cat("小花"),Monkey("悟空"))
arr.map(e=>e match {
case x:Cat => "小花"
case x:Dog =>"小黑"
case x:Monkey => "悟空"
case _ =>
}).foreach(println)
arr.map(e=>e match {
case Cat(_) => "小花"
case Dog(_) =>"小黑"
case Monkey(_) => "悟空"
case _ =>
}).foreach(println)
}
}
02. option
03. 闭包 ---不会
04. 柯里化
05. 隐式