Scala教程
Scala面向对象
Scala高级

Scala 类和对象

Scala 案例类和案例对象

Scala 案例类只是常规类,默认情况下是不可变的,并且可以通过模式匹配进行分解。
它使用相等的方法在结构上比较实例。它不使用 new 关键字来实例化对象。
case 类中列出的所有参数默认都是公开且不可变的。

case class className(parameters)

Scala 案例类示例

case class CaseClass(a:Int, b:Int)
object MainObject{
    def main(args:Array[String]){
        var c =  CaseClass(10,10)       // Creating object of case class
        println("a = "+c.a)               // Accessing elements of case class
        println("b = "+c.b)
    }
}
输出:
a = 10
b = 10


Case 类支持模式匹配。所以,你可以在模式中使用它。以下是案例类和模式的示例。

Scala 案例类和模式匹配示例

没有参数的案例类被声明为案例对象而不是案例类。 case 对象默认是可序列化的。
trait SuperTrait
case class CaseClass1(a:Int,b:Int) extends SuperTrait
case class CaseClass2(a:Int) extends SuperTrait          // case class
case object CaseObject extends SuperTrait             // case object
object MainObject{
    def main(args:Array[String]){
        callCase(CaseClass1(10,10))
        callCase(CaseClass2(10))
        callCase(CaseObject)
    }
    def callCase(f:SuperTrait) = f match{
        case CaseClass1(f,g)=>println("a = "+f+" b ="+g)
        case CaseClass2(f)=>println("a = "+f)
        case CaseObject=>println("No Argument")
    }
}
输出:
a = 10 b =10
a = 10
No Argument
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4