访问Case Classes中的变量

时间:2016-12-11 03:57:36

标签: scala

我有一个名为square的case类,我想访问一个名为side的变量。然后我想使用模式匹配来检测对象的类型是square和return side * side。但是当我运行下面的时候,我得到的值不是这个对象的成员A $ A43.this.square

case class square(side:Double)

def getArea(o: Object): Double = {
  o match {
     case s: square => s.side*s.side
     case _ => 0
  }
 }

提前感谢您的任何建议或帮助。

1 个答案:

答案 0 :(得分:0)

我遇到的问题是由于我使用的是非大写的案例类。因此,为了完成上述工作,您需要执行以下操作。

case class Square(side:Double)

def getArea(o: Object): Double = {
  o match {
     case Square(side) => side*side
     //would also be valid case matching syntax
     //case s: Square => s.side * s.side
     case _ => 0
  }
 }