一、样本类(case Class)
简单的来说,Scala的case Class就是在普通的类定义前加case这个关键字,然后你可以对这些类来模式匹配。
case Class带来的最大的好处是它们支持模式识别。
模式匹配:
其次,如果我们想判断一个对象是否是某个类的对象,跟Java一样可以使用isInstanceOf。
object MyCaseClass {
def main(args: Array[String]): Unit = {
var apple:Fruit=new Apple();
println(apple.isInstanceOf[Fruit]) //true
println(apple.isInstanceOf[Apple]) //true
println(apple.isInstanceOf[Banana]) //false
}
}
class Fruit{}
class Apple extends Fruit{}
class Banana extends Fruit{}
最后,在Scala中有一种更简单的方式来判断,就是case class。
注意:需要在class前面使用case关键字。
object OwnCaseClass {
def main(args: Array[String]): Unit = {
var apple:Fruit=new Apple("红富士");
apple match {
case Apple(name)=>println("我是苹果:"+name)
case Banana(name)=>println("我是香蕉:"+name)
case _ =>println("不知是啥")
}
//不报错,和上面输出的结果一样
println(apple.isInstanceOf[Fruit])
println(apple.isInstanceOf[Apple])
println(apple.isInstanceOf[Banana])
}
}
class Fruit{}
//样本类必须要加参数列表
case class Apple(name:String) extends Fruit{}
case class Banana(name:String) extends Fruit{}