scala样本类之case Class

Scala的Case Classes通过在类定义前添加case关键字,提供模式匹配支持。这种类方便了对象的识别,可以避免使用isInstanceOf。本文将探讨其在模式匹配中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、样本类(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{}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值