Scala case class extending Product with Serializable

后端 未结 3 2133
执笔经年
执笔经年 2020-12-13 01:23

I am learning scala and tried following form Scala Cookbook:

trait Animal
trait FurryAnimal extends Animal
case class Dog(name:String) extends Animal
case cl         


        
3条回答
  •  醉话见心
    2020-12-13 01:47

    All case classes automatically extend Product and Serializable. It looks ugly ? yes. Basically ,Product can be viewed as heterogeneous collections. All Product classes viz. (Product1 , Product2 ...) extends Product which contains some common methods to use like productArity , productElement etc.

    Like Case classes other types that extends Product are List,Tuple etc

    From my scala worksheet,

      val product : Product = (10,"String",3)         //> product  : Product = (10,String,3)
      product.productArity                            //> res0: Int = 3
      product.productElement(0)                       //> res1: Any = 10
      product.productElement(1)                       //> res2: Any = String
      product.productElement(2)                       //> res3: Any = 3
    
    case class ProductCase(age:Int,name:String,ISBN:Int)
      ProductCase(23,"som",5465473).productArity      //> res4: Int = 3
    

    For details look here.

提交回复
热议问题